参数arg、*args、**kwargs三个的区别
2020-08-05 本文已影响0人
楠木cral
arg:单个的参数
*args: 将参数(一般为未命名参数或者叫位置参数)打包成元祖类型的给函数使用
*kwargs: 将参数(一般是命名参数或者叫关键字参数)打包成字典形式
args和kwargs都是不定长参数,可以传0或者更多的参数
举例:
*args:
def function(*args):
print(args, type(args))
function(1) # 打印出 (1,) <class 'tuple'>
def function2(x, y, *args):
print(x, y, args)
function2(1, 2, 3, 4, 5) # 打印出 1 2 (3,4,5)
**kwargs:
def function(**kwargs):
print( kwargs, type(kwargs))
function(a=2) # 打印出 {'a':2} <class 'dict'>
def function2(**kwargs):
print(kwargs)
function2(a=1, b=2, c=3) # 打印出 {'a':1, 'b':2, 'c':3}
参数arg、args、kwargs三个参数的位置必须是一定的。必须是(arg,args,**kwargs)这个顺序,否则程序会报错
def function(arg,*args,**kwargs):
print(arg,args,kwargs)
function(6,7,8,9,a=1, b=2, c=3) # 打印出 6 (7,8,9) {'a':1, 'b':2, 'c':3}