首先理解args, 很多方法中都會存在args,那么首先理解一下赊级,它是由* 以及 args組成的押框。
*
意思是打包或者拆分參數(shù). args是約定俗成的名字岔绸,你起aaa, bbb, ccc ...都可以理逊,只不過為了統(tǒng)一,叫做args盒揉。
來看以下代碼:
def demo(*args):
print(args)
demo(1, 2, 3, 4)
# 結(jié)果 (1, 2, 3, 4)
由此看出晋被,*
是將不限個數(shù)的參數(shù)打包為一個元組。那么繼續(xù)看一下拆分功能刚盈。
def demo(a, b, c):
print(a, b, c)
demo(*[1, 2, 3])
# 結(jié)果 1, 2, 3
就是這么簡單羡洛,打包功能是定義函數(shù)時用到的,而拆分是調(diào)用函數(shù)時用到的藕漱。理解了args, 那么*kwargs就很容易理解了欲侮。
**
也是有打包以及拆分功能。依然看代碼:
def demo(**kwargs):
print(kwargs)
demo(a=1, b=2, c=3)
#結(jié)果 {'a': 1, 'b': 2, 'c': 3}
將參數(shù)打包起來肋联,只不過將參數(shù)都打包成了字典威蕉。 拆分功能也是如此:
def demo(a, b, c):
print(a, b, c)
demo(**{'a': 2, 'b': 3, 'c': 's'})
# 結(jié)果 2, 3, 's'
好了,現(xiàn)在大家能理解了嗎橄仍?