在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ 關(guān)于 Python 函數(shù)參數(shù)的分配與收集問題

關(guān)于 Python 函數(shù)參數(shù)的分配與收集問題

為什么下面執(zhí)行結(jié)果是這樣的?

>>> def func(*args, **kw):
        print(args)
        print(kw)

>>> t=(1,2,3)
>>> d={'a':'A','b':'B','c':'C'}

>>> func(*t,*d) #字典解包后變成鍵的元組?
(1, 2, 3, 'a', 'b', 'c')
{}

>>> func(args=t,kw=d) #字典優(yōu)先?
()
{'args': (1, 2, 3), 'kw': {'a': 'A', 'b': 'B', 'c': 'C'}}

>>> func(t,kw=**d) #為什么語法錯誤?
SyntaxError: invalid syntax

>>> func(*t,kw=**d) #為什么語法錯誤? x2
SyntaxError: invalid syntax
回答
編輯回答
菊外人

func(*args, **kw) 里面 args 的結(jié)構(gòu)是元組,而 kw 對應(yīng)的是字典。

當(dāng)你寫的函數(shù)里面可能會傳入更多的參數(shù)時,比如說:

func(1, 2, 3, 'a'=2, 'b'=3)

你會得到:

args=(1, 2, 3), kw={'a':2, 'b':3}
  • 1 對于 func(*t, *d),你猜對了,python 是這樣處理的
  • 2 對于 func(args=t, kw=d),看完我上面寫的你應(yīng)該能明白了吧~

希望對你有幫助!~

2017年6月2日 08:27