python可变长参数、key-only参数之收集和解包参数

可变长参数在函数定义中,收集参数。如:

>>>def f(*args):print(args)
>>>f(1)
(1,)
>>>f(1,2,3,4)
(1,2,3,4)
>>>def f(**args):print(args)
>>>f(a=1,b=2)
{'a':1,'b':2}
可变长参数在函数调用中,解包参数。如:
>>>def func(a,b,c,d):print(a,b,c,d)
>>>args=(1,2,3,4)
>>>func(*args)
1 2 3 4
>>>args={'a':1,'b':2,'c':3,'d':4}
>>>func(**args)
1 2 3 4
keyword-only参数编写为出现在参数列表中*args之后的有名参数。所有这些参数都必须在调用中使用关键字语法来传递。也可以在参数列表中使用一个“*”字符,来表示一个函数不会接受一个可变长度的参数列表,但是仍然期待跟在“*”后面的所有参数都作为关键字参数传入。如:
>>>def f(a,*b,c)
>>>def g(a,*,b,c)
原文地址:https://www.cnblogs.com/biwangwang/p/11266813.html