zoukankan      html  css  js  c++  java
  • python:函数中的*args与**kwargs

    首先定义一个包含*args和**kwargs的函数,这个函数唯一的功能就是输出自己的两个参数,以此来理解*args和**kwargs

    def myFunc(*args, **kwargs):
        print(args)
        print(kwargs)
        print('---------------')

    下面我们来调用这个函数:

    if __name__ == '__main__':
        myFunc(1,2,3)
        myFunc(a=1,b=2,c=3)
        myFunc(1,2,3,a=1,b=2,c=3)

    输出结果:

    (1, 2, 3)
    {}
    -------------------
    ()
    {'a': 4, 'b': 5, 'c': 6}
    -------------------
    (1, 2, 3)
    {'a': 4, 'b': 5, 'c': 6}
    -------------------

    通过输出结果可以明显的看出*args与**kwargs的区别,两者都是可变参数,前者可以传入任意长的位置参数,是一个tuple,后者则可以传入任意长的关键字参数,是一个dict。

    扩展:通过函数的**kwargs可变关键字参数可以构造字典,例如:

    def gDict(**kwargs):
        print(kwargs)

    调用函数:

    gDict(id=10001,name='hello',age=12,city='beijing')

    输出结果:

    {'id': 10001, 'name': 'hello', 'age': 12, 'city': 'beijing'}

  • 相关阅读:
    AGC005D ~K Perm Counting
    运行python脚本后台执行
    java枚举类型
    java可变参数长度
    java 泛型数组列表
    java抽象类
    java final使用
    java继承
    java 对象
    java 重载
  • 原文地址:https://www.cnblogs.com/ClikeL/p/12021819.html
Copyright © 2011-2022 走看看