Python3 中的三点(…)或省略号是什么
省略号是一个Python对象。它没有方法。它是一个单例对象,即提供对单个实例的轻松访问。
省略号 (…) 的各种用例:
- Python解释器中的默认辅助提示。
- 访问和切片多维数组/NumPy 索引。
- 在类型提示中。
- 用作函数内部的 Pass 语句。
Python解释器中的默认辅助提示
省略号 […] 用作Python解释器中的默认辅助提示符,在多行构造期间可以看到
例子:
访问和切片多维数组/NumPy 索引
- 访问:允许访问指定范围的元素,只需省略序列索引。
- 切片:Ellipsis的重要用途是切片高维数据结构。
例子:
假设,我们有一个 2x2x2x2 阶的 4 维矩阵。要选择第 4 维中的所有第一行元素(在行主要结构的情况下),我们可以简单地使用省略号表示法
Python3
# importing numpy
import numpy as np
array = np.random.rand(2, 2, 2, 2)
print(array[..., 0])
print(array[Ellipsis, 0])
Python3
from typing import Callable
def inject(get_next_item: Callable[..., str]) -> None:
...
# Argument type is assumed as type: Any
def foo(x: ...) -> None:
...
Python3
class flow:
# (using "value: Any" to allow arbitrary types)
def __understand__(self, name: str, value: ...) -> None: ...
Python3
# style1
def foo():
pass
# style2
def foo():
...
# both the styles are same
Python3
def foo(x = ...):
return x
print(foo)
输出:
[[[0.46253663 0.03092289]
[0.72723607 0.75953107]]
[[0.33160093 0.79259324]
[0.76757812 0.21241883]]]
[[[0.46253663 0.03092289]
[0.72723607 0.75953107]]
[[0.33160093 0.79259324]
[0.76757812 0.21241883]]]
在上面的例子中,[:, :, :, 0], […, 0] 和 [Ellipsis, 0] 都是等价的。
我们不能在单个切片中使用多个省略号,例如 [...,index,...]
在类型提示中
省略号用于使用类型模块指定类型提示(例如,Callable[…, str])。它可以以任何一种方式服务:
方法1:当函数的参数允许类型时:任何
实际上 callable 接受参数:
Callable "[" parameters_expression, type_expression "]"
(例如 Callable[…, str])
例子:
Python3
from typing import Callable
def inject(get_next_item: Callable[..., str]) -> None:
...
# Argument type is assumed as type: Any
def foo(x: ...) -> None:
...
使用 '...' 作为 parameters_expression 表示一个函数返回一个字符串而不指定调用签名。
方法二:当函数返回值为类型时: Any
实际上 callable 以这种方式返回:
Callable "[" parameters_expression, type_expression "]" -> return_type: #body
例子:
Python3
class flow:
# (using "value: Any" to allow arbitrary types)
def __understand__(self, name: str, value: ...) -> None: ...
用作函数内的 Pass 语句
省略号用于代替函数内部的 pass 语句。 'pass' 替换为 '...' 或 'Ellipsis'。
例子:
Python3
# style1
def foo():
pass
# style2
def foo():
...
# both the styles are same
省略号也可以用作默认参数值。尤其是当您想区分不传入值和传入None时。
例子:
Python3
def foo(x = ...):
return x
print(foo)
输出: