Ich möchte herausfinden, die Funktionalität einer Methode in Python (die Anzahl der Parameter, die es empfängt). Gerade jetzt das ich tue:Wie finde ich die Richtigkeit einer Methode in 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
Ich möchte in der Lage sein, dies zu erreichen:
Foo().bar.arity() # => 1
aktualisieren: Im Augenblick ist die obige Funktion nicht mit eingebauten Typen, jede Hilfe zu diesem Thema auch anerkannt werden würde:
Standardbibliothek# 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
Was ist falsch mit Hilfe()? Was macht das nicht, was Sie brauchen? –
Ich muss es programmatisch verwenden, also habe ich keine Lust, den Text zu analysieren, um eine Zahl zurückzugeben. –
Was beanspruchen Sie die Aritness von 'def a (* args):'? –