Итак, исправление обезьяны довольно удивительно, но что, если я хочу, чтобы обезьяна патла @property
?Monkey patching Python Propertyersers (и getters?)
Например, чтобы обезьяна патч метод:
def new_method():
print('do stuff')
SomeClass.some_method = new_method
Однако свойства в Python переписать знак =.
Быстрый пример, позволяет сказать, что я хочу изменить х, чтобы быть 4. Как будет идти о выполнении этого ?:
class MyClass(object):
def __init__(self):
self.__x = 3
@property
def x(self):
return self.__x
@x.setter
def x(self, value):
if value != 3:
print('Nice try')
else:
self.__x = value
foo = MyClass()
foo.x = 4
print(foo.x)
foo.__x = 4
print(foo.x)
Nice попробовать
Вопрос as-ask не имеет ничего общего с свойствами, но все, что связано с изменением имени из-за двойной переменной подчеркивания 'self .__ x' –