python3.3 setter中的无限递归

python3.3 setter中的无限递归,第1张

python3.3 setter中的无限递归
@a.setterdef a(self, value):    print ("called a setter")    self.a = value

self.a = value
执行时,它调用你的方法
a(self, value)
再次,它执行
self.a =value
再次,它调用
a(self, value)
…等

常规解决方案是为属性和基础属性使用不同的名称。例如 您可以在前面添加下划线。

class A:    def __init__(self):        self._a = 0    @property    def a(self):        print ("called a getter")        return self._a    @a.setter    def a(self, value):        print ("called a setter")        self._a = value


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5667458.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存