猿问

PythonEllipsis对象是做什么的?

PythonEllipsis对象是做什么的?

在随意浏览命名空间时,我注意到一个奇怪的对象,名为“省略“,它似乎没有什么特别之处,也没有什么特别之处,但它是一个全球范围内可供使用的建筑。”

经过搜索,我发现它在Numpy和Sciy的切片语法的一些模糊变体中使用。但几乎没有别的。

该对象是否专门添加到语言中以支持Numpy+Scipy?省略号是否有任何通用的含义或用途?

D:\workspace\numpy>pythonPython 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32Type "help", "copyright",
 "credits" or "license" for more information.>>> EllipsisEllipsis


天涯尽头无女友
浏览 814回答 3
3回答

拉风的咖菲猫

这是在另一个问题最近。我会详细说明我的回答从那里:省略是一个可以片表示法出现的对象。例如:myList[1:2, ..., 0]它的解释完全取决于实现__getitem__函数与视点Ellipsis对象,但是它的主要(和预期的)用途在数值蟒蛇扩展,它添加了多维数组类型。由于有多个维度,切片变得比仅仅是一个开始和停止索引更复杂;能够在多维中切片也是很有用的。例如,给定一个4x4数组,左上角区域将由切片定义。[:2,:2]:>>> a array([[ 1,  2,  3,  4],        [ 5,  6,  7,  8],        [ 9, 10, 11, 12],        [13, 14, 15, 16]])>>> a[:2,:2]  # top leftarray([[1, 2],        [5, 6]])进一步扩展这一点,在这里使用Ellipsis来表示未指定的其他数组维度的占位符。把它看作是指示整个切片[:]对于空隙中的所有尺寸,它被放置,所以对于一个三维数组,a[...,0]是相同的a[:,:,0]第四天,a[:,:,:,0],类似地,a[0,...,0]是a[0,:,:,0](然而,中间有许多冒号构成数组中的全部维数)。有趣的是,在python 3中,省略文字(...)在片语法之外是可用的,因此您实际上可以编写:>>> ...Ellipsis除了不同的数字类型,不,我不认为它是用的。据我所知,它纯粹是为numpy使用而添加的,除了提供对象和相应的语法之外,没有其他核心支持。在那里的对象不需要这个,但是字面上的“.”对切片的支持。

汪汪一只猫

在Python 3中,可以使用省略文本...作为代码的“NOP”占位符:def will_do_something():     ...这是不魔术;任何表达式都可以用来代替...,例如:def will_do_something():     1(不能用“批准”一词,但我可以说这种用法是不被拒绝)

明月笑刀无情

还可以在指定预期值时使用省略号。博士考试产出:class&nbsp;MyClass(object): &nbsp;&nbsp;&nbsp;&nbsp;"""Example&nbsp;of&nbsp;a&nbsp;doctest&nbsp;Ellipsis &nbsp;&nbsp;&nbsp;&nbsp;>>>&nbsp;thing&nbsp;=&nbsp;MyClass() &nbsp;&nbsp;&nbsp;&nbsp;>>>&nbsp;#&nbsp;Match&nbsp;<class&nbsp;'__main__.MyClass'>&nbsp;and&nbsp;<class&nbsp;'%(module).MyClass'> &nbsp;&nbsp;&nbsp;&nbsp;>>>&nbsp;type(thing)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;doctest:+ELLIPSIS &nbsp;&nbsp;&nbsp;&nbsp;<class&nbsp;'....MyClass'> &nbsp;&nbsp;&nbsp;&nbsp;""" &nbsp;&nbsp;&nbsp;&nbsp;pass
随时随地看视频慕课网APP
我要回答