从python中的函数名获取函数参数

时间:2013-10-17 20:51:11

标签: python function parameters

给定一个函数的名称(作为字符串),我可以得到该函数的参数列表(假设它存在于同一个文件中)吗?基本上,这就是我想要的:

def foo(bar):
    print str(bar);

funcName = 'foo';
printFunctionParameters(funcName);

我明显希望printFunctionParameters打印bar

有什么建议吗?

3 个答案:

答案 0 :(得分:4)

使用inspect模块:

>>> import inspect
>>> def foo(bar):pass
>>> inspect.getargspec(foo)
ArgSpec(args=['bar'], varargs=None, keywords=None, defaults=None)

答案 1 :(得分:1)

在Python 3中,不推荐使用inspect.getargspec(),您应该使用inspect.signature()

import inspect
inspect.signature(foo)

答案 2 :(得分:0)

尝试其中之一,

import inspect

def foo(bar):pass
inspect.getargspec(eval('foo'))

,或者

import inspect
import __main__

def foo(bar):pass
inspect.getargspec(__main__.__getattribute__('foo'))