Python里的*args和**kwargs是什么?
来源:互联网 发布:算法工程师要加班么 编辑:程序博客网 时间:2024/05/06 17:35
先来看个例子:
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”。
呵呵,知道*args和**kwargs是什么了吧。还有一个很漂亮的用法,就是创建字典:
def kw_dict(**kwargs): return kwargs print kw_dict(a=1,b=2,c=3) == {'a':1, 'b':2, 'c':3}
其实python中就带有dict类,使用dict(a=1,b=2,c=3)即可创建一个字典了。
原文链接:http://www.cnblogs.com/fengmk2/archive/2008/04/21/1163766.html
- Python里的*args和**kwargs是什么?
- python的args和kwargs
- *args 和 **kwargs是什么?
- Python *args 和 **kwargs
- python *args和**kwargs
- Python中*args 和**kwargs的用法
- Python中*args 和**kwargs的用法
- Python中*args 和**kwargs的用法
- Python中*args 和**kwargs的用法
- Python中*args 和**kwargs的用法
- Python中*args 和**kwargs的用法
- Python中*args 和**kwargs的用法
- Python中*args 和**kwargs的用法
- Python中*args 和**kwargs的用法
- Python中*args 和**kwargs的用法
- Python中*args 和**kwargs的用法
- Python中*args 和**kwargs的用法
- python的*args和**kwargs用法
- 带上大脑去一个pm值小于2.5的城市
- JAVA_SE基础——44.抽象类的练习
- 关于股转的股票点击分时图下方的撤单按钮进入的是空界面
- 小胖游海南(Mar,2010)-三亚,博鳌,海口
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
- Python里的*args和**kwargs是什么?
- 即时内部聊天程序——MessageIO
- Unity3D占用内存太大的解决方法
- swift(一)天
- eclipse maven depoly项目到nexus
- Sublime Text 3 装了Anaconda 写Python代码出现框框的解决办法
- sublime 编辑器安装
- Redis --- Jedis 使用简单示例
- 黑色白色版本·listview的背景和xml配置(如果有增加的请完善附件)