• Python 中的省略号对象


    作为一名经验丰富的 Python 开发人员,您可能遇到过 Python 中的三个点…省略号对象。 如果您尝试在 Python 解释器中打印此内容,它将显示一个省略号。

    本篇文章将介绍 Python 中省略号对象的使用。


    使用省略号作为未编写代码的占位符

    省略号对象可以以不同的方式使用。 它主要充当未编写代码的占位符。

    假设我们在一个团队中工作,需要定义函数和类。 我们定义了函数和类,但不确定代码,因此我们将三个点(省略号)放在适当的位置。

    这将防止 Python 解释器引发任何异常。

    请参阅下面的代码。

    def fun():
        ...
    print("Use of ellipsis.")
    
    • 1
    • 2
    • 3

    输出:

    Use of ellipsis.
    
    • 1

    上面的示例显示我们将省略号对象作为 fun() 方法中未编写代码的占位符。


    使用省略号代替 pass 关键字

    当我们想要添加一行代码但不希望执行任何内容时,在 Python 中使用 pass 关键字。 因此,它被用作未编写代码的占位符。

    正如所讨论的,我们可以使用省略号对象作为未编写代码的占位符; 因此,我们可以用它来代替 pass 关键字。

    我们可以在下面的例子中看到这一点。

    def fun1():
        ...
    
    def fun2():
        pass
    
    print("Use of ellipsis.")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    输出:

    Use of ellipsis.
    
    • 1

    上面的示例显示,两个函数使用了 pass 和 ellipsis 作为未编写代码的占位符,这表明我们可以将 pass 替换为 ellipsis 对象。


    在多维 numpy 数组切片中使用省略号

    该对象的另一个重要用途是切片。

    切片是指根据索引从对象中提取元素部分的技术。 它是在方括号中完成的。

    我们还可以对多维数组执行切片,但我们需要注意数组中的总维度。 省略号可以用作切片表达式中的占位符来忽略给定的维度。

    考虑以下代码。

    import numpy as np
    arr = np.array([[7,5,2,3],[1,8,9,2],[3,2,1,0]])
    print(arr[ :,2])
    print(arr[...,2])
    
    • 1
    • 2
    • 3
    • 4

    输出:

    [2 9 1]
    [2 9 1]
    
    • 1
    • 2

    在上面的示例中,请注意不同的切片表达式如何返回相同的结果。 省略号作为切片表达式中的占位符非常有用。

    对于二维数组,表达式 arr[...,2] 可以转换为 arr[ : ,2] ,对于三维数组,可以转换为 arr[ :, : , 2] 等等。


    使用省略号进行类型提示

    在Python 3.5及更高版本中,引入了该单例对象的另一种用途。

    类型提示允许我们声明变量、参数和返回值的类型。 我们可以在类型提示中使用省略号来仅提供部分类型。

    我们可以像 Tuple[int, ...]Callable[...,int] 等一样使用它来帮助类型提示。


    总结

    最后,我们讨论了 Python 中的省略号对象及其用途。 它通常用作函数和类中未编写代码的占位符。

    我们还可以将它用作切片中的占位符来忽略多个维度。 Python 3.5 引入了一种在类型提示中使用省略号的新方法。

  • 相关阅读:
    Request之登录系统跳转应用以及原理详解【JavaWeb】
    SpringMVC
    【JavaEE】_HTTP响应
    Java(十八)---单链表
    Linux自动化构建项目工具——Makefile/makefile
    【C++】静态库lib和动态库dll的优缺点、使用方法
    聚观早报 | iPhone 15系列正式发布;月饼专利申请超10000项
    惯导标定国内外研究现状小结(删减版)
    比较含退格的字符串+每日温度
    第九章 APP项目测试(2) 测试工具
  • 原文地址:https://blog.csdn.net/fengqianlang/article/details/133863342