标签:可变 形参 使用 定义函数 元组 war span -- 结果
def x(arg, *args, **kwargs): print(‘arg--> {}‘.format(arg)) print(‘args--> {} ‘.format(args)) print(‘kwarg--> {} ‘.format(kwargs)) x(1,2,3,4,key1="value1") #结果 # arg--> 1 # args--> (2, 3, 4) # kwarg--> {‘key1‘: ‘value1‘}
在函数调用时,位置参数传递必须在关键字参数左边或者说前面,**kwargs接收关键字参数,生成字典。*args接收除第一个位置参数和关键字参数外的其它参数生成元组,根参数是什么数据类型无关。
def x(arg, *args, **kwargs): print(‘arg--> {}‘.format(arg)) print(‘args--> {} ‘.format(args)) print(‘kwarg--> {} ‘.format(kwargs)) x(1,(2,3,),4,key1="value1") #arg--> 1 #args--> ((2, 3), 4) #kwarg--> {‘key1‘: ‘value1‘}
下面方式调用应该不难理解
def print_info(name,age,sex): print(‘name--> {}‘.format(name)) print(‘age--> {} ‘.format(age)) print(‘sex--> {} ‘.format(sex)) print_info("name1",25,"男") #name--> name1 # age--> 25 # sex--> 男
换个方式:*args,**kwargs
def print_info(name, age, sex): print(‘name--> {}‘.format(name)) print(‘age--> {} ‘.format(age)) print(‘sex--> {} ‘.format(sex)) list = ["李刚", 20, "男"] dic = {"name": "王某某", "age": 30, "sex": "女",} print_info(*list) # 将列表或元组前加“*”并传组函数,(注意:元素个数与位置必须对应)结果如下。 # name--> 李刚 # age--> 20 # sex--> 男 print_info(**dic) # 同样在传入的字典前加上“**”,此时字典会被解析成key=value的形式。注意key值和个数不能大于形参,结果如下 # name--> 王某某 # age--> 30 # sex--> 女
综合一下:
print_info("小刚",age=18,**{"sex":"男"}) # name--> 小刚 age--> 18 sex--> 男
(十五)python3 可变长参数(arg,*args,**kwargs)
标签:可变 形参 使用 定义函数 元组 war span -- 结果
原文地址:https://www.cnblogs.com/a-ant/p/11001311.html