转载自: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基础】省略号...的用法相关推荐

  1. python基础函数及用法意思_Python基础之函数基本用法与进阶详解

    本文实例讲述了Python基础之函数基本用法与进阶.分享给大家供大家参考,具体如下: 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数 ...

  2. python语言怎么输入-python/基础输出输入用法

    输出及输入的简单用法 print print,中文意思是打印,在python里它不是往纸上打印,而是打印在命令行,或者叫终端.控制台里面.print是python里很基本很常见的一个操作,它的操作对象 ...

  3. Python 基础的语法用法

    默认情况下,Python 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码 第一个字符必须是字母表中字母或下划线 _ . 标识符的其他的部分 ...

  4. Python 基础学习 locals()用法

    locals() locals 函数更新并以字典形式返回当前全部局部变量 例子: #1 a = 9 b = 4 print(locals()) #2 for i in range(2):c = 8pr ...

  5. python中symbols函数用法_Python基础之函数用法实例详解

    本文以实例形式较为详细的讲述了Python函数的用法,对于初学Python的朋友有不错的借鉴价值.分享给大家供大家参考之用.具体分析如下: 通常来说,Python的函数是由一个新的语句编写,即def, ...

  6. 【Python基础】GitHub 星标 8.8w+,Python 小白 100 天学习计划,从新手到大师!

    本篇给大家介绍一个Python骨灰级别的学习项目. 2019年10月份的时候,一个<Python-100-days>的GitHub项目火了,霸榜GitHub热榜.此项目截止目前已经8.8万 ...

  7. python类装饰器详解-Python装饰器基础概念与用法详解

    本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...

  8. python基础_格式化输出(%用法和format用法)(转载)

    python基础_格式化输出(%用法和format用法) 目录 %用法 format用法 %用法 1.整数的输出 %o -- oct 八进制 %d -- dec 十进制 %x -- hex 十六进制 ...

  9. Python基础教程:return函数的用法

    1.return函数 def face(name):return name+'的脸蛋,'def body(name):return name+'的身材'def main(a,b):return '我梦 ...

  10. python代码大全和用法用量_python零基础入门命令方式汇总大全,快速恶补你的Python基础...

    原标题:python零基础入门命令方式汇总大全,快速恶补你的Python基础 无意中浏览到这篇来自大牛的分享,总结的很全面,我重新排版下放在这里,希望能帮助到大家.在此十分感谢原作者! 在开始之前还是 ...

最新文章

  1. jvm系列(四):jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)
  2. 04.Java网络编程(转载)
  3. php 中 excel表格判断,PHPexcel自动判断excel类型并读取excel所有sheet内容
  4. 基于JAVA+SpringMVC+Mybatis+MYSQL的眼镜店仓库管理系统
  5. 第三方支付处理厂商软件有漏洞,日本美容零售商Acro 10万支付卡信息遭攻击
  6. myeclipse里html添加背景颜色,myeclipse怎么设置主题-设置myeclipse主题背景颜色的教程 - 河东软件园...
  7. (Singleton)单例模式的Java实现
  8. windows7 上搭建NFS服务器--haneWIN
  9. 【工控入门】组态软件概念科普与基本构架描述
  10. 如何获取win10当前桌面背景壁纸
  11. com组件 的劫持_IE首页被劫持跳转问题的解决方案
  12. java happen-before_Java happen-before规则
  13. Apache+PHP+VC14环境搭建及测试
  14. mmkv原理,Android多进程从头讲到尾,成功定级腾讯T3-2
  15. Linux 版本查询常用命令
  16. deepin启动盘制作工具_YUMI——多重引导制作工具
  17. AP_HAL 分析, 以pixhawk-fmuv2为硬件平台,ChibiOS为底层操作系统:
  18. the module was loaded but the call to DllRegisterServer failed with error code 0x80020009
  19. 室内装潢设计—Sweet Home 3D
  20. 爬虫神器Selenium傻瓜教程,看了直呼牛掰

热门文章

  1. 开源单点登录系统CAS(二)
  2. 朕要就寝了,有事明儿说吧铃声 朕要就寝了,有事明儿说吧手机...
  3. java list 时间排序吗_java中的list时间排序
  4. bzoj2186【SDOI2008】沙拉公主的困惑
  5. jquery setInterval() 定时器用法
  6. C语言char *转数组,C语言char*字符串数组和unsigned char[]数组的相互转换
  7. 当我们建设CMDB时我们该做什么
  8. Review代码审核建议
  9. React 使用onMouseDown、onMouseMove、onMouseUp完美实现悬浮球拖动
  10. Java基础之判断语句