注:以下操作是在python控制台下執行的
*
元組中的拆包
t=(1,2,3)
print(t)
(1, 2, 3)
print(*t)
1 2 3
函數中的拆包
def test(a,*args):
... print(a)
... print(args)
... print(*args)
...
test(1,2,3,4,5)
1
(2, 3, 4, 5)
2 3 4 5
test(1,(2,3,4,5))
1
((2, 3, 4, 5),)
(2, 3, 4, 5)
- args将多餘的參數儲存在tuple中
- *args則是将tuple中的數取出
**
dict中的拆包
print(d)
{'a': 3, 'b': 4, 'c': 5}
print(*d)
a b c
print(**d)# **d不支援輸出
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: 'a' is an invalid keyword argument for print()
函數中的拆包
def test(a,**kwargs):
... print(a)
... print(kwargs)
... print(*kwargs)
... test2(**kwargs)# **kwargs不支援輸出,至于是什麼作用檢視替代操作大概就能明白
...
def test2(m,n):
... print(m,n)
test(1,m=11,n=99)
1
{'m': 11, 'n': 99}
m n
11 99
- kwargs将指定值的參數儲存到dict
- *kwargs儲存參數變量名
- **kwargs不支援輸出,作用見替代操作(下)
**替代操作
book=Book.objects.create(**dict_data)# 拆包操作
book=Book.objects.create(title=title,publish=publish,comment=comment,read=read)# 這樣寫也可以