注:以下操作是在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)# 这样写也可以