给定一个函数的名称(作为一个字符串),我可以获得该函数的参数列表(假设它存在于同一个文件中)吗?基本上,这就是我想要的:
def foo(bar):
print str(bar);
funcName = 'foo';
printFunctionParameters(funcName);
我显然想printFunctionParameters
打印的地方bar
。
有什么建议么?
给定一个函数的名称(作为一个字符串),我可以获得该函数的参数列表(假设它存在于同一个文件中)吗?基本上,这就是我想要的:
def foo(bar):
print str(bar);
funcName = 'foo';
printFunctionParameters(funcName);
我显然想printFunctionParameters
打印的地方bar
。
有什么建议么?
使用inspect
模块:
>>> import inspect
>>> def foo(bar):pass
>>> inspect.getargspec(foo)
ArgSpec(args=['bar'], varargs=None, keywords=None, defaults=None)
在 Python 3 中,inspect.getargspec()
已弃用,您应该使用inspect.signature()
import inspect
inspect.signature(foo)
试试看,
import inspect
def foo(bar):pass
inspect.getargspec(eval('foo'))
或者,
import inspect
import __main__
def foo(bar):pass
inspect.getargspec(__main__.__getattribute__('foo'))