Я знаю, что я могу динамически добавлять метод экземпляра к объекту, делая что-то вроде:
import types
def my_method(self):
# logic of method
# ...
# instance is some instance of some class
instance.my_method = types.MethodType(my_method, instance)
Позже я могу позвонить instance.my_method()
, а self будет правильно привязан и все будет работать.
Теперь, мой вопрос: как сделать то же самое, чтобы получить поведение, которое украшало бы новый метод с помощью @property?
Я бы предположил что-то вроде:
instance.my_method = types.MethodType(my_method, instance)
instance.my_method = property(instance.my_method)
Но при этом instance.my_method
возвращает объект свойства.