Python的星号(*、**)的作用
来源:互联网 发布:ipad上的淘宝怎么横屏 编辑:程序博客网 时间:2024/06/07 15:55
Python的星号(*、**)的作用
1. 函数的可变参数
当函数的参数前面有一个星号*的时候表示这是一个可变的位置参数,两个星号**表示是可变的关键字参数。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
输出如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
这样我们可以传入任意个数的参数。
2. unpack参数
星号*把序列/集合解包(unpack)成位置参数,两个星号**把字典解包成关键字参数。下面通过示例来进一步加深理解:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
输出如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
上面的示例中如果v、v2、d
没有加星号那么就当成了一个参数传递给了函数,如果加了星号那么就会解包后传递给函数。foo(*d, **d)
等价于foo(1, 2, 4, a=1, b=12)
。
3. 几个注意点
可变位置参数*args是一个元组,是不可修改的。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
无论我们怎么传入参数,args
都是一个tuple类型,不能进行修改。
对于字典类型的如果只使用一个型号*那么传入的只是字典的键。
0 0
- Python的星号(*、**)的作用
- Python的星号(*、**)的作用
- Python的星号(*、**)的作用
- Python星号操作符的作用
- ruby中星号(*)的作用
- python中带星号/一个星号/两个星号的参数
- python中带星号/一个星号/两个星号的参数
- python中带星号/一个星号/两个星号的参数
- Python 星号(*)操作符的用法
- python中神奇的星号
- CSS中星号*的特殊作用
- ognl # % 的作用(井号,星号,百分号)
- ognl # % 的作用(井号,星号,百分号)
- ognl # % 的作用(井号,星号,百分号)
- python参数—星号作用
- python的星号(*)和双星号(**)用法
- Python 参数知识(变量前加星号的意义)
- Python 参数知识(变量前加星号的意义)
- hbase更换版本作业
- VS2013 编译64位libcurl
- ThinkCMF中如何实现ajax异步加载
- 三天工作总结
- vue2中的组件component问题
- Python的星号(*、**)的作用
- 【Java基础】线程笔记——线程安全
- 为什么magento(麦进斗)怎么慢
- 《Packt.Mastering.Go.Web.Services.2015.4.pdf》之Using Gorilla for JSON-RPC
- .net中lock的用途
- 一看就懂的自定义View -- 水波纹圆形进度球
- 鸡兔同笼问题
- 快速排序的改进-随机快速排序
- db2 10.1 数据库文件介绍