Python:可变参数和关键字参数*args **kwargs

*args可变参数

在Python函数中,可以定义可变参数。可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。
*args表示把args这个list或者tuple的所有元素作为可变参数传进去。两种传递方式如下:

>>> def foo(x,*args):#x为位置参数 args是可变参数
    print(x)
    print(args)
    
>>> foo(1,2,3,4)#1传给位置参数x,剩下的全部传给args
1
(2, 3, 4)
>>> 

>>> foo(1,*(2,3,4))#可直接把一个tuple或list传给可变参数args
1
(2, 3, 4)


**kwargs关键字参数

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

>>> def foo(x,**kwargs):
    print(x)
    print(kwargs)

#两种传递方式:**传递或者键值对传递
>>> foo(1,**{"y":2,"z":3})  #可直接把一个字典通过加**传递给关键字参数
1
{'y': 2, 'z': 3}

>>> foo(1,y=2,z=3)   #所有键值对都传给关键字参数
1
{'y': 2, 'z': 3}

posted @ 2023-09-16 11:02  龙雪  阅读(3)  评论(0编辑  收藏  举报  来源