• 技术文章 >后端开发 >Python教程

    用实例说明python的*args和**kwargs用法

    2016-06-06 11:27:39原创545
    先来看一个例子:

    代码如下:


    >>> def foo(*args, **kwargs):
    print 'args =', args
    print 'kwargs = ', kwargs
    print '-----------------------'


    >>> if __name__ == '__main__':
    foo(1, 2, 3, 4)
    foo(a=1, b=2, c=3)
    foo(1,2,3,4, a=1, b=2, c=3)
    foo('a', 1, None, a=1, b='2', c=3)


    其输出结果如下:

    代码如下:


    args = (1, 2, 3, 4)
    kwargs = {}
    -----------------------
    args = ()
    kwargs = {'a': 1, 'c': 3, 'b': 2}
    -----------------------
    args = (1, 2, 3, 4)
    kwargs = {'a': 1, 'c': 3, 'b': 2}
    -----------------------
    args = ('a', 1, None)
    kwargs = {'a': 1, 'c': 3, 'b': '2'}
    -----------------------


    从以上例子可以看出,这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个 dict。并且同时使用*args和**kwargs时,*args参数列必须要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )这样调用的话,会提示语法错误“SyntaxError: non-keyword arg after keyword arg”。如同所示:
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python
    上一篇:让python json encode datetime类型 下一篇:python下函数参数的传递(参数带星号的说明)
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 详细解析python正则表达式re模块• 一文搞定Python中pip的安装与使用• 一文详解python生成器• Python实战解析selenium的基本元素与键盘鼠标模拟事件• 一起聊聊Python的编码样式
    1/1

    PHP中文网