python *args **kwargs
来源:互联网 发布:胡歌经纪人是谁知乎 编辑:程序博客网 时间:2024/04/29 15:42
先来看个例子:
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/kidstudy/archive/2009/11/23/1608473.html】
- Python *args 和 **kwargs
- python *args and * kwargs
- 【python】args kwargs 用法
- python *args和**kwargs
- python *args **kwargs
- python *args **kwargs
- 【PYTHON】*args **kwargs
- Python args kwargs
- python *args,**kwargs使用
- python *args and **kwargs
- python *args **kwargs用法
- python ----*args与**kwargs
- Python *args *kwargs
- python: *args & **kwargs
- python args **kwargs
- 【python】*args and **kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- 黑马程序员------C语言-----流程控制(选择结构:if,switch)
- python lib install
- C语言--行指针与列指针
- ACM——01——1008: 【入门】将小写字母转换为大写字母 【运算符】
- 16进制颜色对照表
- python *args **kwargs
- c语言二维数组与指针(课时4)
- hibernate学习:一对一单向外键映射
- 定时器setTimeout的应用---延时提示框
- Oracle使用游标为所有用户表添加主键语句
- HDU 1505 City Game (最大子矩形面积)
- 矩阵顺时针旋转90°、180°、270°
- YouCompleteMe的安装
- 技术宅必读!科幻经典!“蒸汽朋克”圣经!人类的命运,将在术狂飙中走向何方?