单星号(*):
作用一
*agrs 将参数以元组形式导入
def test1(param1,param2,*param3):
print(param1)
print(param2)
print(*param3)
test1(1,2,3,4,5)
输出值为
1
2
(3,4,5)
作用二
解压参数列表
若直接执行以下代码
def foo(bar,lee):
print (bar,lee)
l = [1,2]
foo(l)
则会报错
foo() missing 1 required positional argument: 'lee'
使用*后
def foo(bar,lee):
print (bar,lee)
l = [1,2]
foo(*l)
输出值
1 2
双星号():**
**kwargs 将参数以字典的形式导入
def test2(param1,param2,**param3):
print(param1)
print(param2)
print(param3)
test2(1,2,a=3,b=4,c=5)
返回值为:
1
2
{'a': 3, 'b': 4, 'c': 5}
这两个用法可以同时出现在一个函数中:例如
def foo(a, b=10, *args, **kwargs):
print a
print b
print args
print kwargs
foo(1, 2, 3, 4, e=5, f=6, g=7)
返回值
1
2
3 4
{'e': 5, 'g': 7, 'f': 6}
本文详细介绍了Python函数中单星号(*)和双星号(**)的使用方法,包括如何利用*args收集多余位置参数为元组,如何使用**kwargs收集关键字参数为字典,以及如何解压参数列表。
667

被折叠的 条评论
为什么被折叠?



