Python中的反射:如何在Python 2.7中查看函数的所有参数
我正在寻找一种方法,将函数的参数放入包含其名称和默认值为any的dict中 我已经看到,Python中的反射:如何在Python 2.7中查看函数的所有参数,python,python-2.7,reflection,Python,Python 2.7,Reflection,我正在寻找一种方法,将函数的参数放入包含其名称和默认值为any的dict中 我已经看到,inspect模块有一个getcallargs函数,但它可以引发异常,并希望在被检查函数需要时提供参数。我正在寻找一些东西来访问这个结果,而不需要事先了解函数 这必须与python 2.7兼容 def a_function_somewhere(arg1, arg2=None, arg3=12): pass r = the_function_i_m_looking_for(a_function_som
inspect
模块有一个getcallargs
函数,但它可以引发异常,并希望在被检查函数需要时提供参数。我正在寻找一些东西来访问这个结果,而不需要事先了解函数
这必须与python 2.7兼容
def a_function_somewhere(arg1, arg2=None, arg3=12):
pass
r = the_function_i_m_looking_for(a_function_somewhere)
# Expected r {'arg1': Special.NoDefaultValue, 'arg2': None, 'arg3': 12}
出于好奇:用例是什么?我正在加载我的库的用户提供的一些代码,我希望能够根据它们的命名传递给提供的函数元素。这不是很明确,但我认为这是最好的解决方案。
>>> inspect.getargspec(a_function_somewhere)
ArgSpec(args=['arg1', 'arg2', 'arg3'],
varargs=None, keywords=None, defaults=(None, 12))