我有一个属性,当不应该有任何递归时,它会一直达到最大递归限制。我没有_ init _方法,因此我根本没有初始化这些变量。我宁愿不覆盖init。
@property
def key(self):
if not hasattr(self, 'key'):
self._key = self.s3_bucket.get_key(self.key_path)
return self._key
答案 0 :(得分:2)
hasattr
尝试访问属性key
,例如打电话给酒店。这导致无限递归。
你可能想写hasattr(self, '_key')
。
答案 1 :(得分:1)
我认为您正在尝试if not hasattr(self, "_key")
。否则hasattr(self, "key")
将调用该属性,该属性将调用该属性,该属性将调用该属性,该属性将... ....