所以上面的函数将输出:
(1, 2, 3, 4)
既然是元组,就可以对参数进行迭代遍历:
def f(*args):
for arg in args:
print(arg)
f...例如,下面的都是错误的def定义方式:
def f(x,**args,y)
def f(x,**args,y=3)
def f(x,**args,*t)
只能将位置参数或者*的收集放在**的前面。...def f(x,y,**args)
def f(x,*args1,**args2)
函数调用时的*和**
除了在def定义函数时,参数中可以使用*或**收集参数,在函数调用的时候也可以使用*或**分别解包元组...(列表或其它对象)、字典。...例如:
def f(a,*b,c):
print(a,b,c)
按照keyword-only的规则,被*b收集的位置参数不包括c,这个c必须只能使用关键字的方式传值,否则就被当作位置参数被收集到元组