Возможно ли, чтобы обезьяна исправляла значение @property
экземпляра класса, который я не контролирую?
class Foo:
@property
def bar(self):
return here().be['dragons']
f = Foo()
print(f.bar) # baz
f.bar = 42 # MAGIC!
print(f.bar) # 42
Очевидно, что указанное выше приведет к ошибке при попытке назначить f.bar
. Возможно ли # MAGIC!
каким-либо образом? Детали реализации @property
являются черным ящиком, а не косвенным. Весь вызов метода необходимо заменить. Он должен влиять только на один экземпляр (исправление на уровне класса - это нормально, если это неизбежно, но измененное поведение должно только выборочно воздействовать на данный экземпляр, а не на все экземпляры этого класса).