python 中 *args 以及 * *kwargs的总结
*arg
-
*args是当有多个参数时,且每次使用函数时参数的个数是不确定的,* args可以将这些参数打包成一个元组的形式
#示例一 def fun(*args): a = args print(a,type(a)) fun(1,2,3) #输出的结果为 (1, 2, 3) <class 'tuple'> #由此可见,其为元组形式 #示例二 #放入的参数本身是一个元组时 def fun(*args): a = args print(a,type(a)) fun((1,2,3)) #其结果为 ((1, 2, 3),) <class 'tuple'> #元组本身作为其中的一个参数 #如果想将列表或或元组中的元素打散的话 def fun(*args): a = args print(a,type(a)) fun(*(1,2,3)) #可在元组钱加*,意为打散其中的元素,此情况适用于列表和元组
**kwargs
-
**kwrags主要适用于指定参数,主要在我们不知道所指定的参数的个数时,其将指定放入参数生成一个字典,形成一一对应的关系
#示例一 def fun(**kwargs): a = kwargs print(a,type(a)) fun(k1 = 1,k2 = 2) #注意:k1,k1在此处没有" " #输出结果为 {'k1': 1, 'k2': 2} <class 'dict'> #示例二 #另外的一种表示方法 def fun(**kwargs): a = kwargs print(a,type(a)) fun(**{'k1' : 1,"k2" : 2}) #直接以字典的形式输入
-
补充,*args和kwargs中的args和kwargs其实就是形参其完全可以换成a,b.......等的其他的参数,但为了显示专业即用法的同意,在使用的情况下一般是写成args和kwargs**