python输出星号_Python的星号(*、**)的作用
1. 函数的可变参数
当函数的参数前面有一个星号*的时候表示这是一个可变的位置参数,两个星号**表示是可变的关键字参数。
#!env python
#coding=utf-8
#
def foo(*args, **kwarg):
for item in args:
print item
for k,v in kwarg.items():
print k,v
print 30*'='
if __name__ == '__main__':
foo(1, 2, 3, a=4, b=5)
foo(2, 3, a=4, b=5, c=1)
输出如下:
lxg@web-Dev ~/station $ python test_param.py
1
2
3
a 4
b 5
==============================
2
3
a 4
c 1
b 5
==============================
这样我们可以传入任意个数的参数。
2. unpack参数
星号*把序列/集合解包(unpack)成位置参数,两个星号**把字典解包成关键字参数。下面通过示例来进一步加深理解:
#!env python
#coding=utf-8
def foo(*args, **kwarg):
for item in args:
print item
for k,v in kwarg.items():
print k,v
print 30*'='
if __name__ == '__main__':
#foo(1, 2, 3, a=4, b=5)
#foo(2, 3, a=4, b=5, c=1)
v = (1, 2, 4)
v2 = [11, 15, 23]
d = {'a':1, 'b':12}
foo(v, d)
foo(*v, **d)
foo(v2, d)
foo(*v2, **d)
输出如下:
lxg@web-Dev ~/station $ python test_param.py
(1, 2, 4)
{'a': 1, 'b': 12}
==============================
1
2
4
a 1
b 12
==============================
[11, 15, 23]
{'a': 1, 'b': 12}
==============================
11
15
23
a 1
b 12
==============================
上面的示例中如果v、v2、d没有加星号那么就当成了一个参数传递给了函数,如果加了星号那么就会解包后传递给函数。foo(*d, **d)等价于foo(1, 2, 4, a=1, b=12)。
3. 几个注意点
可变位置参数*args是一个元组,是不可修改的。
>>> def foo(*args):
... args[0] = 5
...
>>> foo(1, 2, 3)
Traceback (most recent call last):
File "", line 1, in
File "", line 2, in foo
TypeError: 'tuple' object does not support item assignment
>>> l = [1, 2, 3]
>>> foo(*l)
Traceback (most recent call last):
File "", line 1, in
File "", line 2, in foo
TypeError: 'tuple' object does not support item assignment
无论我们怎么传入参数,args都是一个tuple类型,不能进行修改。
对于字典类型的如果只使用一个型号*那么传入的只是字典的键。
>>> def foo2(*args, **kwarg):
... print args, kwarg
...
>>> d = {'a':1, 'b':2, 'c':3}
>>> foo2(*d)
('a', 'c', 'b') {}
>>> foo2(**d)
() {'a': 1, 'c': 3, 'b': 2}
python输出星号_Python的星号(*、**)的作用相关推荐
- python输出结果_python输出结果
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! tdqm输入的list可以是字符串,也可以对输出进度条加一些描述import t ...
- 用python输出数组_Python 中输出数组中的全部元素
只需要在开头加上一句即可 import numpy as np np.set_printoptions(threshold=np.inf) Python 输出到文本中 参考:https://blog. ...
- python输出星号_python中星号
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! *在python中具有特殊含义,就像它在c中一样? 我在python cookb ...
- python传入参数加星号_Python 带星号(* 或 **)的函数参数详解
1. 带默认值的参数 在了解带星号(*)的参数之前,先看下带有默认值的参数,函数定义如下: >> def defaultValueArgs(common, defaultStr = &qu ...
- python输出方格_Python蓝桥杯练习 剪格子
问题描述 如下图所示,3 x 3 的格子中填写了一些整数. +----+--+ |10 1|52| +--***--+ |20|30 1| *******--+ | 1| 2| 3| +--+--+- ...
- python 输出引号_python输出字符串单双引号如何选择
在Python当中字符串的输出既可以使用单引号,也可以使用双引号,使用单引号或双引号是没有区别的:当使用双引号将输出的字符串括起来时,内部也可使用单引号,将单双引号匹配正确即可. 在Python中我们 ...
- python输出时间_Python获取并输出当前日期时间
取得时间相关的信息的话,要用到python time模块,python time模块里面有很多非常好用的功能,你可以去官方 文档了解下,要取的当前时间的话,要取得当前时间的时间戳,时间戳好像是1970 ...
- new to python什么意思_Python中__new__的作用
__new__ 的作用 依照Python官方文档的说法,__new__方法主要是当你继承一些不可变的class时(比如int, str, tuple), 提供给你一个自定义这些类的实例化过程的途径.还 ...
- python输出偶数_python程序使用递归查找数字是偶数还是奇数
所以我想通过使用递归函数找到偶数,该函数重复从数字中减去2以找到它是否为偶数. 到目前为止,我所拥有的功能是 def isEven(number): if number!=0: return(n-2) ...
最新文章
- GDAL中GDALDataset::RasterIO分块读取的实现
- Go 为什么这么“快”
- Java新手,强烈不建议你用 a.equals(b) 判断对象相等!
- WHUST 2015 Summer Contest #11
- 计算机网络安全课程好吗,浅议计算机网络课程教学问题与对策 计算机网络安全有哪些...
- java pdfbox 解析报错_pdfbox 读取文件报错 java.io.IOException: Page tree root must be a dictionary...
- gulp中使用babel-polyfill编译es6拓展语法
- 休眠:保存vs持久并保存或更新
- 哈佛大学计算机科学专,哈佛大学计算机科学专业
- Android中的savedInstanceState
- Endnote X8 #安装%办法与*安装*包%
- xtrabackup 2.4.3 BUG
- python代码_Python代码的优化技巧
- 新升级带特效喝酒神器小程序源码-多种游戏支持流量主
- 数据仓库ETL工具箱——简介
- 市场的各大TWS蓝牙耳机芯片方案汇总
- 机器学习中类别变量的编码方法总结
- 天才程序员: 那些年我偷懒没敲的EOS代码, 让我失去了一切, 如果...
- 一文理解分布式常见的一致性算法
- 成都自传-MoccA and 555
热门文章
- [nodejs]国内npm安装nodejs modules失败的几个解决方案
- 207. Course Schedule
- [Leetcode][LCP 19][JAVA][秋叶收藏集][动态规划]
- [Leetcode][第459题][JAVA][重复的字符串][子串][匹配]
- [Leedcode][JAVA][第210 题][课程表 II][拓扑排序][BFS][DFS][有向图]
- [剑指offer]面试题第[48]题[Leetcode][JAVA][第3题][无重复字符的最长字串][滑动窗口][HashSet/Map]
- 修改value_EXCEL批量名称修改
- excel亮灯怎么设置_Excel表格技巧—怎么给表格设置密码
- 手工机器人的做法大全用易拉罐_纯手工自制黄油,做法简单详细易操作,蛋糕、饼干、面包都能用...
- python 输入正方形_Python打印正方形