python函数不定长传参有两种形式,分为位置不定长和关键字不定长:
一、位置不定长
位置不定长内部就是用元组来存值
函数
def test(*args):
print(type(args),args)
test(1,2,3,4)
执行:
<class 'tuple'> (1, 2, 3, 4)
传入元组
二、关键字不定长
关键字不定长内部用字典来存值
def test(**kwargs):
print(type(kwargs),kwargs)
test(a=1,b=2,c=3)
执行:
<class 'dict'> {'a': 1, 'b': 2, 'c': 3}
三、综合练习
myTuple = (1,2,3)
muDict = {'a':1,'b':2,'c':3}
def fun(*args,**kwargs):
print(type(args),args)
print(type(kwargs),kwargs)
fun(1,2,3)
print('-'*30)
fun(a=1,b=2,c=3)
print('-'*30)
fun(1,2,3,a=1,b=2,c=3)
print('-'*30)
fun(*myTuple,**muDict)
输出
D:\python\python.exe E:\python\pythonProject1\main.py
<class 'tuple'> (1, 2, 3)
<class 'dict'> {}
------------------------------
<class 'tuple'> ()
<class 'dict'> {'a': 1, 'b': 2, 'c': 3}
------------------------------
<class 'tuple'> (1, 2, 3)
<class 'dict'> {'a': 1, 'b': 2, 'c': 3}
------------------------------
<class 'tuple'> (1, 2, 3)
<class 'dict'> {'a': 1, 'b': 2, 'c': 3}
进程已结束,退出代码0