Alphabet2 类: def init(自身,值): 自我价值=价值
@property
def value(self):
return self.value
@value.setter
def value(self, value):
self.value = value
@value.deleter
def value(self):
del self.value
T = Alphabet2(“单词”)
回溯(最近一次调用最后一次):
文件“c:\Users\”中
T = Alphabet2("单词")
^^^^^^^^^^^^^^^^^^^^^^^
文件“c:\Users\”在init
自我价值=价值
^^^^^^^^^^
文件“c:\Users\”的值
自我价值=价值
^^^^^^^^^^
文件“c:\Users\ 第 1902 行,值为
自我价值=价值
^^^^^^^^^^
文件“c:\Users\ 第 1902 行,值为
自我价值=价值
^^^^^^^^^^
[上一行又重复了 994 次]
RecursionError:超出最大递归深度
您好,我知道如何解决这个问题并且熟悉递归,但我正在寻找这个错误背后的逻辑和直觉,因为涉及递归,有人可以解释这里发生了哪个调用或函数,到底发生了什么。让我失望的是它引用的是 self.attribute 但这实际上并不是一个函数调用。无法在更多后端级别找到有关此内容的文档?有什么想法吗?
@property
def value(self):
return self.value
@value.setter
def value(self, value):
self.value = value
@value.deleter
def value(self):
del self.value
property
,首先,只有当你想要只读属性时,你才应该使用属性作为装饰器,更重要的是,装饰方法和存储值的属性之间应该有区别,观察在文档示例中
class Parrot:
def __init__(self):
self._voltage = 100000
@property
def voltage(self):
"""Get the current voltage."""
return self._voltage
有
_voltage
和voltage
,否则你将以无限递归结束。