1. 程式人生 > >python函式的四種引數傳遞方式

python函式的四種引數傳遞方式

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/