Python星号操作符的作用
2016-06-07 00:46
441 查看
作用
作用于函数中的形式参数,使函数具有接收可变参数的功能作用于函数调用时的实际参数,单星号对应元组,双星号对应字典。对于元组,将元组中对应值传给对应参数,对于字典,将字典中对应key-value对指定的值传给对应的参数。
用法
对于第一种:
def somefunc(*arg): #code goes here
这样,传入的参数将会先被“打包”成为一个元组,然后再当做参数传入。
def somefunc(**arg): #code goes here
传入的参数就会被放入一个字典中再传入。
一个便于理解的例子:
def somefunc(a, b, c, *starone, **startwo): print a, b, c print starone print startwo
运行结果(ipython下):
In [1]: def somefunc(a, b, c, *starone, **startwo): ...: print a, b, c ...: print starone ...: print startwo ...: In [2]: somefunc(1, 2, 3, 4, 5, 6, arg0=80, arg1=201) 1 2 3 (4, 5, 6) {'arg0': 80, 'arg1': 201}
分析:
somefunc接收a, b, c, 一个带一个星号的starone和带两个星号的startwo,根据前面的介绍,starone相当于接收一个元组,而startwo相当于接收一个字典。所以传入的1, 2, 3, 4, 5, 6当中的1, 2, 3分别对应a, b, c直接作为参数传入,剩下的指明名字的参数之前的4, 5, 6则被打包成一个元组一起传入,而指明名字的将被带两个星号的参数接收,被打包成一个字典,key对应名字value对应值。
对于第二种
例子:In [1]: def somefunc(a, b, c): ...: print a, b, c ...: In [2]: test_arg0 = (1, 2, 3) In [3]: somefunc(*test_arg0) 1 2 3 In [4]: test_arg2 = {"a":1, "b":2, "c":3} In [5]: somefunc(**test_arg2) 1 2 3
分析:
somefunc接收a, b, c作为参数,第一次代入的却是一个元组,这里的单星号就是起到将元组“解包”, 把每一个值放到对应参数的位置,然后代进去的作用。同理,双星号,则是将字典解包,按照键值对来把值放到对应的参数的位置,而字典的键是由字符串给出的参数名。
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法