Je joue avec Python callable. Fondamentalement, vous pouvez définir une classe python et implémenter la méthode __call__
pour rendre l'instance de cette classe appelable. par exemple,Vous ne pouvez pas obtenir argspec pour les callables Python?
class AwesomeFunction(object):
def __call__(self, a, b):
return a+b
Module inspection a une getargspec fonction, ce qui vous donne la spécification de l'argument d'une fonction. Cependant, il semble que je ne peux pas l'utiliser sur un objet appelable:
fn = AwesomeFunction()
import inspect
inspect.getargspec(fn)
Malheureusement, je suis un TypeError:
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
Je pense qu'il est tout à fait regrettable que vous ne pouvez pas traiter un objet appelable en fonction , sauf si je fais quelque chose de mal ici?
Merci de me rappeler l'un des moins utilisés et compris les méthodes magiques, '__call__' –