给定一个函数的名称(作为字符串),我可以得到该函数的参数列表(假设它存在于同一个文件中)吗?基本上,这就是我想要的:
def foo(bar):
print str(bar);
funcName = 'foo';
printFunctionParameters(funcName);
我明显希望printFunctionParameters
打印bar
。
有什么建议吗?
答案 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'))