*args
1、定义:可变参数,多余的参数以元祖类型存储def fun5(*args):
print('可变参数元祖类型,传入每个元素,函数名:{},参数为{}'.format(fun5.__name__,args))
2、两种方式调用,直接传入值,或者传入变量
#调用方法一,使用*号,会依次将元祖中元素取出赋值给args
data = (1,2,23,4,5,55)
fun5(*data)
==可变参数元祖类型,传入每个元素,函数名:fun5,参数为(1, 2, 23, 4, 5, 55)
#调用方法二,直接传入数据,依次赋值给args
fun5(1,2,34)
==可变参数元祖类型,传入每个元素,函数名:fun5,参数为(1, 2, 34)
**kwargs
1、定义:可变参数,多余的参数以字典的形式存储#可变参数,多余的参数以字典的形式存储
def fun6(**kwargs):
print('可变参数元祖类型,传入每个元素,函数名:{},参数为{}'.format(fun6.__name__,kwargs))
2、两种方式调用,直接传入值,或者传入变量
#调用方法一,使用**号,会依次将字典key-value键值存储到字典中
data3 ={'a':4}
fun6(**data3)
==可变参数字典类型,传入每个元素,函数名:fun6,参数为{'a': 4}
#调用方法二,直接传入数据,依次赋值给kwargs
fun6(a=5,b=5)
==可变参数字典类型,传入每个元素,函数名:fun6,参数为{'a': 5, 'b': 5}
之前一直没有弄懂调用函数时,传入变量如何正确使用可变参数,*args和args有何区别,记录一下,*和 ** 主要是用于依次取出变量中的值,然后用于赋值