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
,其中*号必须带上 -
牢记:
一定是通过元组
收集
字典形式
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") # 只有3个变量,分别给x、y、z
foo("python", 11, "java",12,13,name="Peter") # 前3个传给xyz,其他的非字典形式给args
image.png
网友评论