为了账号安全,请及时绑定邮箱和手机立即绑定

用属性替换实例的属性

用属性替换实例的属性

蛊毒传说 2021-09-14 20:45:14
我想用一个属性覆盖一个属性,但只在一个实例上。这是我尝试解决它的方法,但它没有做我想做的事情:class Foo:    def __init__(self):        self.bar = True        self._hidden = Falsea = Foo()print(a.bar)a.bar = property(lambda self: self._hidden)print(a.bar)>>> C:\Users\Ilya\AppData\Local\Programs\Python\Python37-32\python.exe C:/Users/Ilya/pydolons/experiment.py>>> True>>> <property object at 0x0323B960>可以做到吗?启用类属性而不是实例上设置的 dunder 调用的实际机制是什么?以下代码执行我想做的事情,但它修改了类:class Foo:    def __init__(self):        self.bar = True        self._hidden = Falsea = Foo()print(a.bar)Foo.bar = property(lambda self: self._hidden)print(a.bar)>>> C:\Users\Ilya\AppData\Local\Programs\Python\Python37-32\python.exe C:/Users/Ilya/pydolons/experiment.py>>> True>>> False
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信