可能重复:
在python中获取方法参数名称
有没有一种简单的方法可以在python函数中获取参数名称列表?
例如:
def func(a,b,c):
print magic_that_does_what_I_want()
>>> func()
['a','b','c']
Run Code Online (Sandbox Code Playgroud)
谢谢
鉴于Python函数:
def a_method(arg1, arg2):
pass
Run Code Online (Sandbox Code Playgroud)
如何提取参数的数量和名称.即,鉴于我有一个func的引用,我想要返回func.[something]("arg1","arg2").
这种情况的使用场景是我有一个装饰器,我希望使用方法参数的顺序与它们为实际函数出现的顺序相同.也就是说,当我调用aMethod("a","b")时,装饰器看起来会打印出"a,b"吗?
我正在寻找像Lisp的arg-supplied-p变量一样的东西,以帮助区分默认值和用户指定的相同值.
例:
def foo(a=10):
pass
Run Code Online (Sandbox Code Playgroud)
我想在foo中知道它是否像这样调用:
foo()
Run Code Online (Sandbox Code Playgroud)
或者像这样:
foo(10)
Run Code Online (Sandbox Code Playgroud)
或者甚至喜欢这样:
foo(a=10)
Run Code Online (Sandbox Code Playgroud)
最后2个对我来说是同义词; 我不需要知道那个细节.我已经仔细查看了检查模块,但getargspec为所有3个调用返回的结果完全相同.