在Python中,有一个语法你可能之前都没见过,或者见过但不知道什么意思,他就是...(省略号的三个点),在这里先给大家看几个例子:
-
下面代码中函数中的
...代表什么意思?def hello(): ... -
下面代码中类型定义中的
...代表什么意思?Tuple[int,...] -
下面代码中下标取值中的
...代表什么意思?n = np.arange(8).reshape(2, 2, 2) n[1,...,1]
注意:以上代码都是正确的,没有任何语法错误。 那你知道...在每个例子中分别代表什么意思吗,如果不知道,可以接着往下看啦。
...介绍:
实际上,...是Python中的一个内置常量,他有一个正式的名字叫做——Ellipsis,翻译成中文的意思就是“省略号”。
这个常量是Python六大内置常量之一(其余几个常量是None、False、True、NotImplemented、__debug__),他的数据类型是ellipsis。就相当于False这个常量的数据类型是bool一样。
下面我们再在python中做了以下尝试,能帮助你更好的理解...: 
用途介绍
1. 函数中的...:
我们的第一个例子,在函数中写上...
def hello():
...
是什么意思呢?其实在函数中写...没有任何特殊意义,就是当做一个常量被放到函数中是一样的,你可以把...替换为None,作用是一样的。但是...因为是省略号的意思,所以一般我们看到函数中...的时候,会自然而然想到这是一个还没有写完的函数,所以在理解起来会把他等同于pass。总结一下:
- 真实的意思就是一个常量被放到函数中。
- 语义上的理解就是一个还没写完的函数,等同于
pass。
2. Type Hint中的...:
在Python3.5后,引入了Type Hint语法,也就是类型提示,在定义函数参数,函数返回值的时候加上类型提示,方便在调用的时候不会报错。比如:
def hello(word: str) -> str:
return "hello %s"%word
以上参数和返回值就都指定了要返回字符串类型。
再来看一个小需求。 比如我们现在有一个函数的参数是Tuple类型,然后这个Tuple中的元素必须为(int,str)类型,那么可以写成一下:
def fun(mytuple: Tuple[int,str]):
for x in mytuple:
print(x)
再来看一个和...有关的小需求,假设我们的函数参数还是Tuple类型,但是元组中的元素必须都为int类型,并且元组中个数是不固定的,那么可以使用以下代码来实现:
def fun(mytuple: Tuple[int,...]):
for x in mytuple:
print(x)
3. 切片操作:
假设现在我们有一个有一个np.array数组对象,然后是一个(2,2)的数组,这时候可以通过...来代表所有的(有点类似于:)进行切片。代码如下:
n = np.arange(4).reshape(2, 2)
n[1,...]
以上的n对象是:
array([[0, 1],
[2, 3]])
然后我们用[1,...]来进行切片后,得到的是:
array([2, 3])
所以此时...可以等价为:。
4. 表示无限循环:
加入我们现在有一个列表a=[1,2,3],然后我们执行代码a.append(a),那么再来打印a的时候,a的值为:
a = [1,2,3]
a.append(a)
print(a)
>> [1, 2, 3, [...]]
因为a中又添加了自己a,所以是一个无限循环了。此时用...来表示,再合适不过了。
以上就是...的用法,觉得有用的点个关注呗。你还发现有哪些很少用,但必须要掌握的小技巧,欢迎在评论区留言哦~

本文深入解析Python中省略号(...)的多种用途,包括在函数、类型提示、切片操作及表示无限循环中的含义,助你全面掌握这一内置常量。
287

被折叠的 条评论
为什么被折叠?



