添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
豁达的便当  ·  [python] 使用 python ...·  21 小时前    · 
从容的柳树  ·  4. 在Windows上使用 Python ...·  11 小时前    · 
活泼的卤蛋  ·  GitHub - ...·  3 小时前    · 
有腹肌的油条  ·  How to program ESP32 ...·  3 小时前    · 
刚分手的鼠标  ·  Python IDE:Arduino ...·  3 小时前    · 
乐观的蚂蚁  ·  开放获取期刊·  2 月前    · 
瘦瘦的野马  ·  MySQL資料庫簡易效能調教·  3 月前    · 

使用Python属性时,您可能会发现“调用Python对象时超出了最大递归深度”错误。 这是将导致此错误的代码示例:

class Person:
    def __init__(self, name):
        self.name = name
    def set_name(self, name):
        self.name = name
    def get_name(self):
        return self.name
    name = property(get_name, set_name)
serena = Person('Serena')

我们已经使用property()函数来告诉Python,获取self.name值的方法是调用get_name()函数。但是在get_name()函数中,我们尝试返回self.name。 为了找出self.name的值,Python再次调用get_name()函数,该函数再次尝试返回self.name。我们发现自己陷入了无尽的循环:

解决方法是使用伪私有属性:_name,并使用get_name()检索self._name,并使用set_name()设置self._name,如下所示:

class Person:
    def __init__(self, name):
        self._name = name
    def set_name(self, name):
        self._name = name
    def get_name(self):
        return self._name
    name = property(get_name, set_name)
serena = Person('Serena')
print(serena.name)
serena.name = 'Serena Williams'
print(serena.name)

这将打印:

Serena
Serena Williams

学点编程吧原创翻译,转载请注明出处!

最近在备课的过程中发现了一个非常好的东西分享给大家。作者是谁当时没有记录下来。 就是下面这张图,通过一张思维导图对Python3能有一个初步的了解。建议大家保存在电脑上再看比较方便。 如需高清图,直接... 03月05日 2,755 评论 根据互联网上相关文章综合整理。 .py 文件 以 .py 作扩展名的文件是 Python 源代码文件,由 python.exe 解释,可在控制台下运行。可用文本编辑器进行修改。   .pyc... 08月18日 5,405 评论 作者:我会吹   本期课程掌握的知识点: 计算机的发展历史:电子管、晶体管、集成电路、大规模集成电路 程序语言的发展历史:机器语言、汇编语言、高级语言 编程能提高我们的效率,让我们生活得更好... 03月20日 2,953 1