Je voudrais connaître l'arité d'une méthode en Python (le nombre de paramètres qu'elle reçoit). En ce moment je fais ceci:Comment trouver l'arité d'une méthode en Python
def arity(obj, method):
return getattr(obj.__class__, method).func_code.co_argcount - 1 # remove self
class Foo:
def bar(self, bla):
pass
arity(Foo(), "bar") # => 1
Je voudrais être en mesure d'atteindre cet objectif:
Foo().bar.arity() # => 1
Mise à jour: En ce moment, la fonction ci-dessus échoue avec les types intégrés, toute aide sur ce serait également apprécié:
# Traceback (most recent call last):
# File "bla.py", line 10, in <module>
# print arity('foo', 'split') # =>
# File "bla.py", line 3, in arity
# return getattr(obj.__class__, method).func_code.co_argcount - 1 # remove self
# AttributeError: 'method_descriptor' object has no attribute 'func_co
Qu'est-ce qui ne va pas avec help()? Qu'est-ce que cela ne fait pas ce dont vous avez besoin? –
J'ai besoin de l'utiliser par programmation, donc je n'ai pas envie d'analyser le texte pour retourner un nombre. –
Qu'est-ce que vous réclamez l'arité de 'def a (* args):'? –