例如我已经声明了一个函数:
def sum(a,b,c):
return a + b + c
我想得到“和”函数的长度。
像这样的somethig:some_function(sum)返回3
如何在Python中完成?
更新
我问了这个问题,因为我想编写一个函数,接受另一个函数作为参数和参数来传递它。
def funct(anotherFunct, **args):
我需要验证:
if(len(args) != anotherFuct.func_code.co_argcount):
return "error"
答案 0 :(得分:13)
inspect
模块是你的朋友;特别是inspect.getargspec
,它为您提供有关函数参数的信息:
>>> def sum(a,b,c):
... return a + b + c
...
>>> import inspect
>>> argspec = inspect.getargspec(sum)
>>> print len(argspec.args)
3
argspec
还包含可选参数和关键字参数的详细信息,在您的情况下,您没有,但值得了解:
>>> print argspec
ArgSpec(args=['a', 'b', 'c'], varargs=None, keywords=None, defaults=None)
答案 1 :(得分:5)
如果您的方法名称为sum
,那么sum.func_code.co_argcount
会为您提供一些参数。
答案 2 :(得分:2)
import inspect
print len(inspect.getargspec(sum)[0])