zoukankan      html  css  js  c++  java
  • python学习笔记:*args和**kwargs使用原理?

    一.*args和**kwargs原理

     先看个例子:

    def test(*args,**kwargs):
        print("args =",args)
        print("kwargs =",kwargs)
        print("----------------------------------")
    if __name__ == '__main__':
        test(1,5,94,564)
        test(a=1,b=2,c=3)
        test(1,2,3,4,a=1,b=2,c=3)
        test('I love python',1,None,a=1,b=2,c=3)
    #输出:
    args = (1, 5, 94, 564)
    kwargs = {}
    ----------------------------------
    args = ()
    kwargs = {'a': 1, 'b': 2, 'c': 3}
    ----------------------------------
    args = (1, 2, 3, 4)
    kwargs = {'a': 1, 'b': 2, 'c': 3}
    ----------------------------------
    args = ('I love python', 1, None)
    kwargs = {'a': 1, 'b': 2, 'c': 3}
    ----------------------------------

    可以看到这两个是python中的可变参数,*args表示任何多个无名参数,他是个tuple,**kwargs表示关键字参数,它是个dict。在同时使用*args和**kwargs时,必须*args参数列要在**kwargs前面,要是test(a=1,b=2,c=3,1,2,3,4)这样调用的话肯定会报语法错误的!

    二.使用**kwargs创建字典:

    def kw_dict(**kwargs):
        return kwargs
    print(kw_dict(k1='v1',k2='v2',k3='v3'))
    #执行结果:
    {'k3': 'v3', 'k2': 'v2', 'k1': 'v1'}
  • 相关阅读:
    php namespacee原理
    CentOs7安装源设置
    centos安装docker
    docker快速搭建php7.2-nginx开发环境
    python将数据存储到csv文件中
    第十二周博客总结
    第十一周博客总结
    爬取今日新闻网的侧边栏
    第十周博客总结
    python语言实现网络爬虫---requests库、BeautifulSoup4库
  • 原文地址:https://www.cnblogs.com/wenwei-blog/p/7569157.html
Copyright © 2011-2022 走看看