Python函数的参数长度?

Zan*_*ngo 10 python parameters arguments function

可能重复:
如何在Python中找出方法的arity

例如,我已经声明了一个函数:

def sum(a,b,c):
    return a + b + c
Run Code Online (Sandbox Code Playgroud)

我想获得"sum"函数的参数长度.
像这样的somethig:some_function(sum)返回3
如何在Python中完成?

更新:
我问了这个问题,因为我想写一个函数接受另一个函数作为参数和参数来传递它.

def funct(anotherFunct, **args): 
Run Code Online (Sandbox Code Playgroud)

我需要验证:

if(len(args) != anotherFuct.func_code.co_argcount):
    return "error"
Run Code Online (Sandbox Code Playgroud)

Ric*_*dle 14

inspect模块是你的朋友; 具体而言inspect.getargspec,它为您提供有关函数参数的信息:

>>> def sum(a,b,c):
...     return a + b + c
...
>>> import inspect
>>> argspec = inspect.getargspec(sum)
>>> print len(argspec.args)
3
Run Code Online (Sandbox Code Playgroud)

argspec 还包含可选参数和关键字参数的详细信息,在您的情况下,您没有,但值得了解:

>>> print argspec
ArgSpec(args=['a', 'b', 'c'], varargs=None, keywords=None, defaults=None)
Run Code Online (Sandbox Code Playgroud)


mou*_*uad 5

如果你的方法名是sum那么sum.func_code.co_argcount会给你的参数的数目.