Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我会用@property达到递归限制?_Python_Python 2.7 - Fatal编程技术网

Python 为什么我会用@property达到递归限制?

Python 为什么我会用@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

我有一个属性,当不应该有任何递归时,它会一直达到最大递归限制。我没有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
尝试访问属性
,例如调用属性。这将导致无限递归


您可能想编写
hasattr(self,“\u key”)

如果不是hasattr(self,“\u key”),我想您是在尝试编写
。否则,
hasattr(self,“key”)
将调用属性,属性将调用属性,属性将……

作为可能的解决方案,我将在构造函数中设置
self.\u key=None
,如果self.\u key为None: