python 参数 *与**
来源:互联网 发布:网络技术论坛 编辑:程序博客网 时间:2024/06/15 20:09
*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”
下面是在python 命令行写的简单测试:
>>> def fun(*args, **kwargs):... print 'args = ', args... print 'kwargs = ', kwargs... print '###'... >>> fun(1,2,3,4)args = (1, 2, 3, 4)kwargs = {}###>>> fun(a=1,b=2,c=3,d=4)args = ()kwargs = {'a': 1, 'c': 3, 'b': 2, 'd': 4}###>>> fun(1,2,3,4,a=1,b=2,c=3,d=4)args = (1, 2, 3, 4)kwargs = {'a': 1, 'c': 3, 'b': 2, 'd': 4}###>>> fun('a', 1, None, a=1, b='2', c=3) args = ('a', 1, None)kwargs = {'a': 1, 'c': 3, 'b': '2'}###>>> fun( a=1, b='2', c=3,'a',1,None) File "<stdin>", line 1SyntaxError: non-keyword arg after keyword arg>>> fun( a=1, b='2', 'a',1,None,c=3) File "<stdin>", line 1SyntaxError: non-keyword arg after keyword arg>>>
* 和 ** 也可以用在string.format的时候, 用 ** 后可以直接引用key的值,写起来更简洁
>>> kwargs = {'a': 1, 'c': 3, 'b': 2, 'd': 4}>>> "a is {kwargs[a]}, b is {kwargs[b]},c is {kwargs[c]} ,d is {kwargs[d]}".format(kwargs=kwargs)'a is 1, b is 2,c is 3 ,d is 4'>>> "a is {a}, b is {b},c is {c} ,d is {d}".format(**kwargs)'a is 1, b is 2,c is 3 ,d is 4'
阅读全文
1 0
- Python *与** 参数问题
- Python *与** 参数问题
- Python *与** 参数问题
- Python *与** 参数问题
- Python *与** 参数问题
- Python *与** 参数问题
- Python *与** 参数问题
- Python *与** 参数问题
- Python *与** 参数问题
- python 参数 *与**
- 【python】*与** 参数问题
- python中的参数定义与可变参数
- Python中的星号参数与双星参数
- Python函数定义与参数
- [Python] python中函数的参数定义与可变参数
- Python与C参数交互(结构指针).
- Python中 命令行参数传递 与 处理
- 与Python命令行参数相关的模块
- 231. Power of Two
- DataV接入ECharts图表库 可视化利器强强联手
- javaWeb页面传参总结
- 购物车功能
- Storm安装
- python 参数 *与**
- 敏捷计划、估算考点
- Android 客户端直播实现
- JVM调优
- Android java.lang.IllegalArgumentException: Unterminated quote
- 利用神经网络识别手写数字
- C语言打印Log
- SQL Server 跨数据库查询
- iOS类别扩展无法识别添加方法