• python中*和**的打包和解包


    python中的*和**,能够让函数支持任意数量的参数,它们在函数定义和调用中,有着不同的目的

    一. 打包参数

    *的作用:在函数定义中,收集所有的位置参数到一个新的元组,并将这个元组赋值给变量args

    >>> def f(*args):
        print(args)
       
    >>> f()
    ()
    >>> f(1)
    (1,)
    >>> f(1, 2, 3, 4)
    (1, 2, 3, 4)
    >>>
    

    ** 的作用:在函数定义中,收集关键字参数传递给一个字典,并将这个字典赋值给变量kwargs

    >>> def f(**kwargs):
        print(kwargs)
        
    >>> f()
    {}
    >>> f(a=1, b=2)
    {'a': 1, 'b': 2}
    

    PS:遇到问题没人解答?需要Python学习资料?可以加点击下方链接自行获取
    note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76

    二. 解包参数

    的作用:在函数调用中,能够将元组或者列表解包成不同的参数

    >>> def func(a, b, c, d):
        print(a, b, c, d)
        
    >>> args = (1, 2, 3, 4)
    >>> func(*args)
    1 2 3 4
    
    >>> args = [1, 2, 3, 4]
    >>> func(*args)
    1 2 3 4
    

    的作用:在函数调用中,会以键/值的形式解包一个字典,使其成为独立的关键字参数

    >>> def func(a, b, c, d):
        print(a, b, c, d)
    
        
    >>> kwargs = {"a": 1, "b": 2, "c": 3, "d": 4}
    >>> func(**kwargs)
    1 2 3 4
    

    举个栗子:

    # 参数解包:将整个list当做参数传给函数
    list = [1, 2, 4]
     
     
    def add_fn(a, b, c):
        return a + b + c
     
     
    sum = add_fn(*list)
    print("参数解包:", sum)
    

    运行结果:

    参数解包: 7
    
  • 相关阅读:
    ios外包公司——技术分享:IOS开发教程
    ios外派—本公司长年提供ios程序员外派业务(北京动点软件,可签合同)
    mysql
    mysql
    mysql
    mysql
    mysql
    一些学习网站
    java 之 枚举(Enum)
    .net core
  • 原文地址:https://www.cnblogs.com/python960410445/p/12026237.html
Copyright © 2020-2023  润新知