Python 为什么我会用@property达到递归限制?
我有一个属性,当不应该有任何递归时,它会一直达到最大递归限制。我没有uinit uuu方法,因此我根本没有初始化这些变量。我宁愿不重写initPython 为什么我会用@property达到递归限制?,python,python-2.7,Python,Python 2.7,我有一个属性,当不应该有任何递归时,它会一直达到最大递归限制。我没有uinit uuu方法,因此我根本没有初始化这些变量。我宁愿不重写init @property def key(self): if not hasattr(self, 'key'): self._key = self.s3_bucket.get_key(self.key_path) return self._key hasattr尝试访问属性键,例如调用属性。这将导致无限递归 您可能想编写has
@property
def key(self):
if not hasattr(self, 'key'):
self._key = self.s3_bucket.get_key(self.key_path)
return self._key
hasattr
尝试访问属性键
,例如调用属性。这将导致无限递归
您可能想编写
hasattr(self,“\u key”)
如果不是hasattr(self,“\u key”),我想您是在尝试编写。否则,hasattr(self,“key”)
将调用属性,属性将调用属性,属性将……作为可能的解决方案,我将在构造函数中设置self.\u key=None
,如果self.\u key为None: