def param(pos_param, *args, **kwargs):
print(f"pos_param:{pos_param}, type:{type(pos_param)}")
print(f"args:{args}, type:{type(args)}")
print(f"kwargs:{kwargs}, type:{type(kwargs)}")
#固定传参
param(1, 2, 3, "name", age=12)
my_tuple = (1, 2, 3, "aaa")
#my_tuple当做一个整体作为位置参数赋值形参 pos_param,而 *args 接收到空了
param(my_tuple, age=12) #args:(), type:<class 'tuple'>
#在参数前面加一个*号,对实参进行拆包(脱衣服),去掉两边的括号
param(*my_tuple, age=12, name="jike")
my_dict = {'age':'12', 'name':"jike"}
#字典前面加一个*号,只取了字典的key, 并返回元组了,('age', 'name')
#字段前面加2个*号,即可取出字典并传给形参kwargs
param(*my_tuple, **my_dict)
pass