【python基础】省略号...的用法
转载自:https://zhuanlan.zhihu.com/p/489862322
文章目录
- 1. 省略号是什么?
- 2. 省略号三种用法
- 类型提示
- 函数内部,相当于pass
- numpy中的索引
省略号(…)在Python有着广泛的应用,尤其是一些底层代码中,经常能看到大量的省略号(…)。如下图所示就是type这个类的底层代码,可以看到非常多的省略号(…)。这些省略号(…)是什么意思?又有哪些用法呢?本文试图分析一二。
1. 省略号是什么?
省略号(…)的底层代码很简单,如下所示。@final装饰器
的意思是该类不允许被继承。
# Actually the type of Ellipsis is <type 'ellipsis'>, but since it's
# not exposed anywhere under that name, we make it private here.
@final
class ellipsis: ...Ellipsis: ellipsis
而如下的代码的输出结果说明:Ellipsis就是省略号(…),省略号(…)就是Ellipsis。
而Ellipsis是ellipsis类的唯一实例(singleton object),这种唯一实例的模式也称为单例模式
(singleton pattern)[1]。
print(type(...)) # output: <class 'ellipsis'>
print(Ellipsis == ...) # True
print(...) # Ellipsis
2. 省略号三种用法
类型提示
关于Python中的类型提示(type hints)详见【Python】作为动态语言,Python中的“类型声明”有什么用?。省略号(…)在类型提示中经常被使用,如
from typing import Callable, TupleCallable[..., int] # 输入参数随意,返回值为int
Tuple[int, ...] # int组成的元组
函数内部,相当于pass
以下两个写法没有太大区别
def foo1(): pass
def foo2(): ...
numpy中的索引
import numpy as nparr = np.random.random((2,2,2))
print(arr)
print(arr[..., 0, 0])
import numpy as npa = np.array([[[1, 2, 21], [3, 4, 34]],[[5, 6, 56], [7, 8, 78]]])
print("a:",a)
print('a.shape:', a.shape)
print("-"*10)'''
[...,0:2]针对的是最后一个维度的下标为0、1的元素
'''
b = a[..., 0:2]
print('b :', b)
print('shape.b:', b.shape)
print("-"*10)'''
[...,1:2]针对的是最后一个维度的下标为1的元素
'''
c = a[..., 1:2]
print('c :', c)
print('shape.c:', c.shape)
print("-"*10)'''
[...,1]是相当于[-1],倒数第1个维度(-2,-1,-0)
'''
d = a[..., 1]
print('d :', d)
print('shape.d:', d.shape)运行结果如下:a: [[[ 1 2 21][ 3 4 34]][[ 5 6 56][ 7 8 78]]]a.shape: (2, 2, 3)----------b : [[[1 2][3 4]][[5 6][7 8]]]shape.b: (2, 2, 2)----------c : [[[2][4]][[6][8]]]shape.c: (2, 2, 1)----------d : [[2 4][6 8]]shape.d: (2, 2)
【python基础】省略号...的用法相关推荐
- python基础函数及用法意思_Python基础之函数基本用法与进阶详解
本文实例讲述了Python基础之函数基本用法与进阶.分享给大家供大家参考,具体如下: 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数 ...
- python语言怎么输入-python/基础输出输入用法
输出及输入的简单用法 print print,中文意思是打印,在python里它不是往纸上打印,而是打印在命令行,或者叫终端.控制台里面.print是python里很基本很常见的一个操作,它的操作对象 ...
- Python 基础的语法用法
默认情况下,Python 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码 第一个字符必须是字母表中字母或下划线 _ . 标识符的其他的部分 ...
- Python 基础学习 locals()用法
locals() locals 函数更新并以字典形式返回当前全部局部变量 例子: #1 a = 9 b = 4 print(locals()) #2 for i in range(2):c = 8pr ...
- python中symbols函数用法_Python基础之函数用法实例详解
本文以实例形式较为详细的讲述了Python函数的用法,对于初学Python的朋友有不错的借鉴价值.分享给大家供大家参考之用.具体分析如下: 通常来说,Python的函数是由一个新的语句编写,即def, ...
- 【Python基础】GitHub 星标 8.8w+,Python 小白 100 天学习计划,从新手到大师!
本篇给大家介绍一个Python骨灰级别的学习项目. 2019年10月份的时候,一个<Python-100-days>的GitHub项目火了,霸榜GitHub热榜.此项目截止目前已经8.8万 ...
- python类装饰器详解-Python装饰器基础概念与用法详解
本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...
- python基础_格式化输出(%用法和format用法)(转载)
python基础_格式化输出(%用法和format用法) 目录 %用法 format用法 %用法 1.整数的输出 %o -- oct 八进制 %d -- dec 十进制 %x -- hex 十六进制 ...
- Python基础教程:return函数的用法
1.return函数 def face(name):return name+'的脸蛋,'def body(name):return name+'的身材'def main(a,b):return '我梦 ...
- python代码大全和用法用量_python零基础入门命令方式汇总大全,快速恶补你的Python基础...
原标题:python零基础入门命令方式汇总大全,快速恶补你的Python基础 无意中浏览到这篇来自大牛的分享,总结的很全面,我重新排版下放在这里,希望能帮助到大家.在此十分感谢原作者! 在开始之前还是 ...
最新文章
- jvm系列(四):jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)
- 04.Java网络编程(转载)
- php 中 excel表格判断,PHPexcel自动判断excel类型并读取excel所有sheet内容
- 基于JAVA+SpringMVC+Mybatis+MYSQL的眼镜店仓库管理系统
- 第三方支付处理厂商软件有漏洞,日本美容零售商Acro 10万支付卡信息遭攻击
- myeclipse里html添加背景颜色,myeclipse怎么设置主题-设置myeclipse主题背景颜色的教程 - 河东软件园...
- (Singleton)单例模式的Java实现
- windows7 上搭建NFS服务器--haneWIN
- 【工控入门】组态软件概念科普与基本构架描述
- 如何获取win10当前桌面背景壁纸
- com组件 的劫持_IE首页被劫持跳转问题的解决方案
- java happen-before_Java happen-before规则
- Apache+PHP+VC14环境搭建及测试
- mmkv原理,Android多进程从头讲到尾,成功定级腾讯T3-2
- Linux 版本查询常用命令
- deepin启动盘制作工具_YUMI——多重引导制作工具
- AP_HAL 分析, 以pixhawk-fmuv2为硬件平台,ChibiOS为底层操作系统:
- the module was loaded but the call to DllRegisterServer failed with error code 0x80020009
- 室内装潢设计—Sweet Home 3D
- 爬虫神器Selenium傻瓜教程,看了直呼牛掰
热门文章
- 开源单点登录系统CAS(二)
- 朕要就寝了,有事明儿说吧铃声 朕要就寝了,有事明儿说吧手机...
- java list 时间排序吗_java中的list时间排序
- bzoj2186【SDOI2008】沙拉公主的困惑
- jquery setInterval() 定时器用法
- C语言char *转数组,C语言char*字符串数组和unsigned char[]数组的相互转换
- 当我们建设CMDB时我们该做什么
- Review代码审核建议
- React 使用onMouseDown、onMouseMove、onMouseUp完美实现悬浮球拖动
- Java基础之判断语句