python函式的四種引數傳遞方式
阿新 • • 發佈:2018-12-10
fun1(a,b,c) | fun2(a=1,b=2,c=3) | fun3(*args) | fun4(**kargs) |
---|---|---|---|
直接將實參賦予行參,根據位置做匹配。 | 根據鍵值對的形式做實參與行參的匹配,忽略了引數的位置關係,不要求數量上的相等。 | 可以傳入任意個引數,這些若干引數都被放到了tuple元組中賦值給行參args,引數的數量上沒有了限制,但是有次序。 | 最為靈活,以鍵值對字典的形式向函式傳參,含有第二種位置的靈活的同時具有第三種方式的數量上的無限制。 |
需要注意:
- fun2 須在fun1之後, fun3須在fun2之後 ,fun4須在fun3之後
程式碼演示以及輸出:
def test(x, y=5, *args, **kwargs):
print("x=%d, y=%d, args=%s, kwargs=%s"%(x, y, args, kwargs))
test(1, 2, 3, 4, k=1, t=2, s=3)
x=1, y=2, args=(3, 4), kwargs={‘k’: 1, ‘t’: 2, ‘s’: 3}
引文:http://lazybios.com/2013/04/four-kinds-of-function-argment-pass-in-python/