【发布时间】:2010-10-20 19:17:20
【问题描述】:
在闲逛命名空间时,我注意到一个名为Ellipsis 的奇怪对象,它似乎并没有什么特别之处,但它是一个全局可用的内置函数。
经过搜索,我发现 Numpy 和 Scipy 在切片语法的一些晦涩变体中使用了它……但几乎没有别的。
这个对象是专门添加到语言中来支持 Numpy + Scipy 的吗?省略号有任何通用含义或用途吗?
D:\workspace\numpy>python
Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> Ellipsis
Ellipsis
【问题讨论】:
-
我发现它是这样的:我输入了
x=[];x.append(x);print(x),看看它是如何处理字符串化循环对象的。它返回了[[...]]。我想“我想知道如果我输入[[...]]会发生什么?我猜它会抛出一个语法错误。相反,它返回了[[Ellipsis]]。Python 太奇怪了。随后的谷歌搜索把我带到了这个页面。 -
请注意,递归repr中的
...只是一个占位符,与Ellipsis无关 -
顺便说一句,导入中的三点表示“从两个包向上导入”。
-
@croq stackoverflow.com/q/32395926/2988730。 stackoverflow.com/q/1054271/2988730。这两个人应该解释一切,并在答案中提供正确的文档和 PEP 链接。