python *args与**kwargs的区别
这里不做*args 和 **kwargs的介绍,直接上代码看看两者之间的区别
一、*args的使用方法
*args是非关键字参数,用于元组
例1:
def function(*args): print(args,type(args))
function(123)
输出结果以元组的形式展现

例2:
def function(x, y, z, *args): print(x, y, z, args) function(1, 2, 3, 4, 5, 6, 7, 8, 9)
输出结果:

也就是表示*args 会将参数一一对应过后将所剩下的数值一并装到元组里
二、**kwargs的使用方法
**kwargs是关键字参数(字典)
例1:
def function(**kwargs): print(kwargs,type(kwargs)) function(x=100)
输出结果以字典的形式展现

例2:
def function(**kwargs): print(kwargs) function(x=1,y=2,z=3)
输出结果:

最后有需要注意一个细节:参数args,*args,**kwargs 三个参数的位置顺序必须是一致的,否则程序会出错
def function(arg, *args, **kwargs): print(arg, args, kwargs) function(1, 2, 3, 4, 5, a=100, y=200, z=300)
输出结果:


浙公网安备 33010602011771号