Я ищу питоновское решение о том, как хранить метод, вызываемый объектом прямо внутри объекта.
Поскольку в python, если я хочу уловить, например, метод abs()
, я перегружаю этот оператор, например:
Catcher(object):
def __abs__(self):
self.function = abs
c = Catcher()
abs(c) # Now c.function stores 'abs' as it was called on c
Если я хочу поймать функцию, в которой есть другой атрибут, например pow()
, я буду использовать это:
Catcher(object):
def __pow__(self, value):
self.function = pow
self.value = value
c = Catcher()
c ** 2 # Now c.function stores 'pow', and c.value stores '2'
Теперь то, что я ищу, является общим решением, чтобы поймать и сохранить любую функцию, называемую Catcher
, без реализации всех перегрузок и других случаев. И как вы можете видеть, я также хочу сохранить значения (возможно, в списке, если их более одного?), Которые являются атрибутами метода.
Спасибо заранее!