Я играю с вызываемым Python. По сути, вы можете определить класс python и реализовать метод __call__
, чтобы сделать экземпляр этого класса вызываемым. например.,
class AwesomeFunction(object):
def __call__(self, a, b):
return a+b
Модуль inspect имеет функцию getargspec, которая дает спецификацию аргумента функции. Однако, кажется, я не могу использовать его на вызываемом объекте:
fn = AwesomeFunction()
import inspect
inspect.getargspec(fn)
К сожалению, я получил ошибку типа:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/inspect.py", line 803, in getargspec
raise TypeError('arg is not a Python function')
TypeError: arg is not a Python function
Я думаю, что весьма прискорбно, что вы не можете рассматривать любой вызываемый объект как функцию, если я не делаю здесь что-то не так?