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)

 输出结果:

 

posted @ 2020-01-01 16:19  This_is_me  阅读(205)  评论(0)    收藏  举报