I'd like to find out the arity of a method in Python (the number of parameters that it receives). Right now I'm doing this: 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 I'd like to be able to achieve this: Foo().bar.arity() # => 1 Update: Right now the above function fails with built-in types, any help on this would also be appreciated: # 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 Continue reading...