def a(*args, **kwargs): # 函数定义的时候*及**告诉解释器后面的变量可以
#接收多个实参,将多个实参自动组包成元组和字典
print(args)
print(kwargs)
b(*args,**kwargs) # 函数调用的时候,实参前面的*及**表示自动解包,
#将传入的元组解成多个实参值,将传入的字典解成多个关键字实参
def b(m,*args,**kwargs):
print(m)
print(args)
print(kwargs)
a(1,2,"a","c",x=5,y=9)
print("-------->")
b(1,2,"a","c",x=5,y=9) # a函数中调用 b(*args,**kwargs)
#相当于b(1,2,"a","c",x=5,y=9)
输出:
(1, 2, 'a', 'c')
{'x': 5, 'y': 9}
1
(2, 'a', 'c')
{'x': 5, 'y': 9}
-------->
1
(2, 'a', 'c')
{'x': 5, 'y': 9}