python function with variadic arguments or keywords(dict) 可变参数与关键字参数
*args 表示任意个普通参数,调用的时候自动组装为一个tuple
**kwags 表示任意个字典类型参数, 调用的时候自动组装成一个dict
args和kwags是两个约定俗成的用法。
变长参数可以用*args来解包
>>> args = [3,6]
>>> list(range(*args))
[3, 4, 5]
>>> def f1(*args, **kwargs):
... print args, kwargs
...
>>> l = [1, 2, 3]
>>> t = [4, 5, 6]
>>> d = {'a':7, 'b':8, 'c':9}
>>> f1()
() {}
>>> f1(1,2,3)
(1, 2, 3) {}
>>> f1(1,2,3,'hello')
(1, 2, 3, 'hello') {}
>>> f1(a=1,b=2,c=3)
() {'a': 1, 'c': 3, 'b': 2}
>>> f1(a=1,b=2,c=3,d='hello')
() {'a': 1, 'c': 3, 'b': 2, 'd': 'hello'}
>>> f1(1,2,3,a=1,b=2,c=3)
(1, 2, 3) {'a': 1, 'c': 3, 'b': 2}
>>> f1(*l)
(1, 2, 3) {}
>>> f1(*t)
(4, 5, 6) {}
>>> f1(**d)
() {'a': 7, 'c': 9, 'b': 8}
>>> f1(1,2,*t)
(1, 2, 4, 5, 6) {}
>>> f1(1,2,*l)
(1, 2, 1, 2, 3) {}
>>> f1(1,2,*t,s='world',**d)
(1, 2, 4, 5, 6) {'a': 7, 'c': 9, 'b': 8, 's': 'world'}
>>> def f2(arg1, arg2, *args, **kwargs):
... print arg1, arg2, args, kwargs
...
>>> f2(1,2,3,a=1,b=2,c=3)
1 2 (3,) {'a': 1, 'c': 3, 'b': 2}
>>> f2(1,2,*t)
1 2 (4, 5, 6) {}
>>> f2(1,2,*t,s='hello',**d)
1 2 (4, 5, 6) {'a': 7, 'c': 9, 'b': 8, 's': 'hello'}
最新文章
- Fedora 22中的DNF软件包管理工具
- Mysql在windows系统下的配置
- 两个APP之间怎么调用《IT蓝豹》
- Web API应用支持HTTPS的经验总结
- 给锁住的行解锁(oracle)
- win32程序组成
- JS闭包文章--(翻译)Callbacks in Loops
- VS2013的virtualpath在当前应用程序根的外部
- package-info.java文件详解
- 【自动化测试】Selenium excel操作
- Xamarin Mono Android Ios 安装、破解(4.12)
- HDU5715 XOR 游戏 二分+字典树+dp
- 文件/图片,批量上传【神器】--WebUploader
- 高性能javascript
- eCos驱动分析 之 ISR是如何与硬件中断联系起来的?
- Android网络开发之用tcpdump抓包
- GitBook配置
- Linux:从入门到放弃
- 一款优秀的前端框架——AngularJS
- 【视频】dx dy的意思 微分的定义 导数符号的意思