我们经常会在参数传递的时候看到有些参数的前面会有*星号.或者**双星号,两者类似地有以下两个作用:
1. 对于第一个作用:
* 单星号将参数以元祖的形式导入:1
2
3
4
5
6
7def foo(p1,*p2):
print(p1)
print(p2)
foo(1,2,3)
# 打印结果:
#1
#(2,3)
而**双星号,则是将参数以字典的形式导入:1
2
3
4
5
6
7def bar(p1,*p2):
print(p1)
print(p2)
bar(1,a=2,b=3)
# 打印结果:
#1
#{'a':2, 'b':3}
2. 对于第二个作用:
* 单星号将元祖解压为对应参数,而**双星号,则是将字典解压为对应参数。
1 | def foo(a,b,c): |