多个实参,放到一个元组里面,以*开头,可以传多个参数;**是形参中按照关键字传值把多余的传值以字典的方式呈现
*args 和**kwargs只是一个通俗的命名约定,只有变量前面的 *(星号)才是必须的...(需要拆分来看):
1、从形参的角度来看:
示例:
1
2
3
def foo(*args):#其实这一操作相当于def foo(a,b,c,d,e):
print(args)
foo(...1,2,3,4,5)#其中的1,2,3,4,5都按照位置传值分别传给了a,b,c,d,e
执行结果是:
1
(1, 2, 3, 4, 5)
2、从实参的角度来看:
示例:
1
2
3...x,y,z
执行结果是:
1
2
3
**kwargs:(表示的就是形参中按照关键字传值把多余的传值以字典的方式呈现)
示例:
def foo(x,**kwargs):
print(x)
...**,可以从2个角度来看(需要拆分来看):
1、从形参的角度来看:
示例:
1
2
3
def foo(**kwargs):#其实就是相当于def foo(y,a,b,c)
print(kwargs