1

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

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

funcName = 'foo';
printFunctionParameters(funcName);

我显然想printFunctionParameters打印的地方bar

有什么建议么?

4

3 回答 3

4

使用inspect模块:

>>> import inspect
>>> def foo(bar):pass
>>> inspect.getargspec(foo)
ArgSpec(args=['bar'], varargs=None, keywords=None, defaults=None)
于 2013-10-17T20:54:15.977 回答
1

在 Python 3 中,inspect.getargspec()已弃用,您应该使用inspect.signature()

import inspect
inspect.signature(foo)
于 2017-06-15T08:32:08.673 回答
0

试试看,

import inspect

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

或者,

import inspect
import __main__

def foo(bar):pass
inspect.getargspec(__main__.__getattribute__('foo'))
于 2013-10-18T16:26:34.510 回答