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中规定非关键字传递的变量必须写在关键字传递变量的前面,所以混合使用 * 和 ** 时肯定时形参在*形参的前面。


 

Copyright © 2018 bbs.dian.org.cn All rights reserved.

Looks like your connection to Dian was lost, please wait while we try to reconnect.