Python中的*args和**kwargs
来源:互联网 发布:excel同名数据合并求和 编辑:程序博客网 时间:2024/05/16 06:50
先来看个例子:
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)即可创建一个字典了。
- 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
- python 中的*args 和**kwargs
- python中的*args和**kwargs
- Python中的可变参数*args和**kwargs
- 用GDB调试程序
- 详谈Delegate (二)
- Open Inventor练习-文件读取
- Android 学习笔记(六) U-Boot的概述
- windonws XP多用户登陆问题
- Python中的*args和**kwargs
- 把任务放在后台运行
- String类测试 (一)
- html dom(input)标签自带click方法
- 终极SVN在windows下的配置(一)
- w3school在线教程 网站学习必看
- Linux内核中的do{}while(0)
- 为web服务添加用户认证
- 【二进制的妙用】猫猫的小鱼