我编写了这个描述符类,当我try 在不同的类中使用它时,会出现以下错误:
RecursionError: maximum recursion depth exceeded
个
class x:
def __init__(...):
...
def __set_name__(self, _, name):
self.internal_name = name
def __get__(self, instance, _):
if instance is None:
return
else:
return getattr(instance, self.internal_name)
def __set__(self, instance, value):
if instance is None:
return
else:
setattr(instance, self.internal_name, value)
我发现,通过改变我的__set_name__
方法,我不再得到这个问题:
def __set_name__(self, _, name):
self.internal_name = f'_{name}'
但我不确定为什么会出现这种情况.您能解释一下为什么我需要确保名称与从__set_name__
返回的值不同吗