2
我有以下功能:获取python函数的参数顺序?
def foo(a, b, c):
print "Hello"
比方说,我知道它的存在,我知道这需要命名为A,B和C三个参数,但我不知道在哪个顺序。
我希望能够调用foo给像一本字典:
args = { "a": 1, "b" : 17, "c": 23 }
有没有办法找出其中责令参数是要传递?
我有以下功能:获取python函数的参数顺序?
def foo(a, b, c):
print "Hello"
比方说,我知道它的存在,我知道这需要命名为A,B和C三个参数,但我不知道在哪个顺序。
我希望能够调用foo给像一本字典:
args = { "a": 1, "b" : 17, "c": 23 }
有没有办法找出其中责令参数是要传递?
你不需要;让Python为你解答:
foo(**args)
这适用于你的字典作为关键字参数,这是完全合法的。您可以使用参数foo()
以任意顺序当您使用关键字参数:
>>> def foo(a, b, c):
... print a, b, c
...
>>> foo(c=3, a=5, b=42)
5 42 3
>>> args = {'a': 1, 'b' : 17, 'c': 23}
>>> foo(**args)
1 17 23
您仍然可以找出准确的顺序,使用inspect.getargspec()
function:
>>> import inspect
>>> inspect.getargspec(foo)
ArgSpec(args=['a', 'b', 'c'], varargs=None, keywords=None, defaults=None)
但是,为什么有一只狗和树皮自己呢?