筆記-python-*號解包
阿新 • • 發佈:2018-05-28
調用 ext 而已 rgs 註意 sum str 在定義函數時 發現
筆記-python-*號解包
在碼代碼時發現*號可以這樣使用:
str = ["abcd", "abce", "abcf"]
st = "fwefwe"
print(*str)
print(*st)
輸出:
abcd abce abcf
f w e f w e
原因:
其實只差一個*而已。*是python中一個賦值的技巧,叫做解包。
在定義函數時def func(*args, **kwargs),*代表不定個數的參數,以tuple的方式傳入,**則是以dict的方式。在使用函數的時候,也可以有類似的方法,調用func(*args)函數時,相當於把一個元組args拆開,當成參數傳進函數中,又叫參數解包。
下面是另一個案例:
# 參數解包:將整個list當做參數傳給函數
def add_fn(a, b, c):
return a + b + c
list = [1, 2, 4]
sum = add_fn(*list)
print("參數解包:", sum)
與此相對的是參數打包,一般使用tuple進行打包:
1、散態傳遞參數
func(*arg)
2、打包傳遞參數
func( arg=tuple())
{
func_exe(*arg)
}
註意實際函數調用時對參數進行解包。
3、單個參數打包元組
args=(‘bob‘,)
筆記-python-*號解包