Python中的*args 和 **kwargs

在Python中的代码中经常会见到这两个词 args 和 kwargs,前面通常还会加上一个或者两个星号。其实这只是编程人员约定的变量名字,args 是 arguments 的缩写,表示位置参数;kwargs 是 keyword arguments 的缩写,表示关键字参数。这其实就是 Python 中可变参数的两种形式,并且 *args 必须放在 **kwargs 的前面,因为位置参数在关键字参数的前面

*args 不定参数(不定的意思是指,预先并不知道,函数使用者会传递多少个参数给你)

*args 是用来发送一个非键值对的可变数量的参数列表给一个函数。
*args 的用法:当传入的参数个数未知,且不需要知道参数名称时。

def test_args(first,*args):
    print("required argument: ",first)
    print(type(args))
    for v in args:
        print('optional argument: ',v)

test_args(1,2,3,4,5)

输出结果:
Python中的*args 和 **kwargs_第1张图片
**kwargs
而**kwargs则是将一个可变的关键字参数的字典传给函数实参,同样参数列表长度可以为0或为其他值。下面这段代码演示了如何使用kwargs

def test_kwargs(first,**kwargs):
    print("required argument: ",first)
    print(type(kwargs))
    for k,v in kwargs.items():
        print('optional argument: ',k,":",v)
test_kwargs(1,a=2,b=3,c=4)

Python中的*args 和 **kwargs_第2张图片

你可能感兴趣的:(pytorch,python,开发语言)