我想用一個屬性覆蓋一個屬性,但只在一個實例上。這是我嘗試解決它的方法,但它沒有做我想做的事情: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
添加回答
舉報
0/150
提交
取消