我想找出一個方法,在Python的元數(它接收的參數個數)的元數。 現在我這樣做:如何找出一個方法,在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
我希望能夠做到這一點:
Foo().bar.arity() # => 1
更新:現在上面的函數失敗,並內建類型,任何幫助也將不勝感激:
# 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
help()有什麼問題?這不是你所需要的嗎? – 2009-06-13 09:49:34
我需要以編程方式使用它,所以我不想解析文本以返回一個數字。 – 2009-06-13 15:21:04
你有什麼要求def a(* args)的元素:`? – 2009-06-13 20:41:56