Python是如何处理函数中参数的个数不确定性呢?
*args
:元组形式收集**kargs
:字典形式收集
元组形式
def fun(x, *args):
print(x)
result = x
print(args)
for i in args:
result += i
return result
y = fun(1,2,3,4,5,6)
image.png
结果解析
- 若参数个数不确定,其他参数全部通过*args以
元组
的形式收集 - 1传给参数x,只有第一个参数
- 其他全部给
args
,其中*号必须带上 牢记:
一定是通过元组
收集
image.png
字典形式
def foo(**kargs):
print(kargs)
foo(a=1, b=2, c=3)
image.png
一个综合题让你明白到底是怎么传参的?
def foo(x,y,z,*args,**kargs):
print(x)
print(y)
print(z)
print(args)
print(kargs)
foo("python", 11, "java")
foo("python", 11, "java",12,13,name="Peter")