Is it at all possible to monkey patch the value of a @property
of an instance of a class that I do not control?
class Foo:
@property
def bar
Subclass the base class (Foo
) and change single instance's class to match the new subclass using __class__
attribute:
>>> class Foo:
... @property
... def bar(self):
... return 'Foo.bar'
...
>>> f = Foo()
>>> f.bar
'Foo.bar'
>>> class _SubFoo(Foo):
... bar = 0
...
>>> f.__class__ = _SubFoo
>>> f.bar
0
>>> f.bar = 42
>>> f.bar
42