python两个魔方变量使用说明

我常常分不清楚python中的args和*kwargs的用法,所以才有这篇文章的编写的必要性。

args、*kwargs主要用于函数定义,可以将不确定个数的参数传递给一个函数。

在 Python 中,通过在函数定义中的参数名称的头部添加***(一个或两个星号),

可以在调用函数时指定任意数量的参数(可变长度参数)。

注意,参数的英文是argument。

*args

一般的函数是确定参数的个数的。在这里,不确定个数的意思是,预先不知道使用者会传

递多少个参数。*args是代表一个非键值对的可变数量的参数列表给一个函数。

def test_args(*args):
    if len(args) !=0:
        for arg in args:
            print('参数是:%s'%arg)
    else:
        print('这个函数没有输入参数')
test_args('1','2',3)
test_args()

test_args(‘1’,’2’,3)会返回:

参数是:1
参数是:2
参数是:3

test_args()会返回:

这个函数没有输入参数

xOLGzd.png

这里test_args(‘1’,’2’,3) 等价于 test_args([‘1’,’2’,3]),*args代指[‘1’,’2’,3]

**kwargs

**kwargs代表一个不确定个数的键值对,传递给函数例子如下:

def test_kwargs(**kwargs):
    for key, value in kwargs.items():
        print("{0}={1}".format(key, value))
test_kwargs(name='qqq')

返回:

name=qqq

xOL7l9.png

小结

*args: 接收多个参数作为一个元组

**kwargs: 接收多个关键字参数作为字典