标签:def highlight 序列 aaa turn 多个参数 位置 一个 []
可以接受任意多个参数,在参数名前面加*,习惯参数名用args
位置顺序:位置参数,*args,默认参数,**kwargs
def s(*args): s=0 for i in args: s+=i return s #此时将参数整体当成一个元组 print(s(1,2,3))#结果6
def func(*args,l=[]): print(args)#结果:(1, 2, ‘str‘, [‘jkj‘, 1]) print(args,l)#结果:(1, 2, ‘str‘) [‘jkj‘, 1] func(1,2,‘str‘,[‘jkj‘,1]) func(1,2,‘str‘,l=[‘jkj‘,1]) #此时将参数当做字典 def funct(**kwargs): print(kwargs) funct(a=1,b=2,c=3) #结果:{‘a‘: 1, ‘b‘: 2, ‘c‘: 3}
def func(*args,default=1,**kwargs): print(args,default,kwargs) func(1,2,3,4,5,default=2,a=‘aaa‘,b=‘bbbb‘) #结果:(1, 2, 3, 4, 5) 2 {‘a‘: ‘aaa‘, ‘b‘: ‘bbbb‘}
def func(*args):#站在形参的角度上,给变量加上*,就是组合所有传来的值 print(args) func(1,2,3,4,5) #结果:(1, 2, 3, 4, 5) l=[1,2,3,4,5] #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺利打散 func(*l) #结果:(1, 2, 3, 4, 5) def funct(**kwargs): print(kwargs) funct(a=1,b=2) #结果:{‘a‘: 1, ‘b‘: 2} d={‘a‘:1,‘b‘:2} funct(**d) #结果:{‘a‘: 1, ‘b‘: 2}
动态参数有两种:可以接收任意个参数
*args:接收的是按照位置传参的值,组织成一个元组
**kwargs:接收的是按照关键字传参的值,组织成一个字典
args必须在kwargs之前
标签:def highlight 序列 aaa turn 多个参数 位置 一个 []
原文地址:https://www.cnblogs.com/Cheryol/p/9718598.html