python中包裹参数传递机制
-
python中的 * 和 ** 参数传递机制
包裹参数传递的实现是在定义函数时在形参前面加上 * 或 ** , * 所对应的形参(如上面的a)会被解释为一个元组(tuple,而 ** 所对应的形参(如上面的b)会被解释为一个字典。具体调用时参数的传递见下面的代码:
def f(*a,**b): print(a) print(b) a=3 b=4 f(a,b,m=1,n=2) # [output] # (3, 4) # {'m':1,'n':2}
使用关键字传递的参数会被识别成字典的形式,同时要注意python中规定非关键字传递的变量必须写在关键字传递变量的前面,所以混合使用 * 和 ** 时肯定时形参在*形参的前面。