Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的反射:如何在Python 2.7中查看函数的所有参数_Python_Python 2.7_Reflection - Fatal编程技术网

Python中的反射:如何在Python 2.7中查看函数的所有参数

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

我正在寻找一种方法,将函数的参数放入包含其名称和默认值为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_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))