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)
但是,爲什麼有一隻狗和樹皮自己呢?