python的函数参数
问的比较多的是*args 和 **kwargs的区别
参考文章
定义 |
f(a,b,c) 必选参数 |
f(a,b,c=0)c为默认参数 |
f(a,b,c=0,*args)args可选参数(自动组装为tuple) |
f(a,b,c=0,**kwargs)kwargs为关键字参数(自动组装为字典) |
f(a,b,c=0,*,job,name)job和name为命名关键字参数 |
f(a,b,c=0,*args,job,name,**kwagrs)a,b 为位置参数,c为默认参数,args为可选参数,name,job为命名关键字参数,kwargs为关键字参数 |
定义的顺序
必选参数–>默认参数–>可选参数–>命名关键字参数–>关键字参数
使用示例
def fff(a,b,c=0,*args,job,name,**kwargs):
print("a=",a,end =' ')
print("b=",b,end =' ')
print("c=",c)
print("args=",args)
print("job=",job)
print("name=",name)
print("kwargs=",kwargs)
print("_________________")
print("~~~~~~~~~")
fff(1,2,3,4,5,6,6,job=123,name=789,k1=1233) ##name和job必传
fff(1,2,job=123,name=789)
#fff(1,2) #报错
输出结果
a= 1 b= 2 c= 3
args= (4, 5, 6, 6)
job= 123
name= 789
kwargs= {'k1': 1233}
_________________
~~~~~~~~~
a= 1 b= 2 c= 0
args= ()
job= 123
name= 789
kwargs= {}
_________________
~~~~~~~~~