文章目录
- 前言
- 一、`*`与`**`在函数定义时
- 二、`*`与`**`在函数调用时
前言
在python中*
与**
的使用要区分是在函数定义时还是在函数调用时。
一、*
与**
在函数定义时
def deng(*args,**kwargs):print(args)print(kwargs)deng(1,2,3,a = 4,b = 5)
在函数定义时参数前面使用*
,代表将收集调用函数时的非关键字参数,并且存储在一个元组args中。
在函数定义时参数前面使用**
,代表将收集调用函数时的关键字参数,并且存储在一个字典kwargs中。
二、*
与**
在函数调用时
在函数调用时参数前面使用*
,代表将该参数解包(将序列中的元素按照位置参数传进函数)
def deng(a,b,c,d):print(a)print(b)print(c)print(d)
list_a = [1,2,3,4]
deng(*list_a)
在函数调用时参数前面使用**
,代表将该参数解包(将字典中的元素按照关键字参数传进函数)
def deng(a,b,c,d):print(a)print(b)print(c)print(d)
dict_a = {'a' : 1,'b' : 3,'c' : 4,'d' : 2 }
deng(**dict_a)