亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PythonEllipsis對象是做什么的?

PythonEllipsis對象是做什么的?

天涯盡頭無女友 2019-06-20 16:52:59
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
查看完整描述

3 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

這是在另一個問題最近。我會詳細說明我的回答從那里:

省略是一個可以片表示法出現的對象。例如:

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使用而添加的,除了提供對象和相應的語法之外,沒有其他核心支持。在那里的對象不需要這個,但是字面上的“.”對切片的支持。


查看完整回答
反對 回復 2019-06-20
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

在Python 3中,可以使用省略文本...作為代碼的“NOP”占位符:

def will_do_something():
    ...

這是魔術;任何表達式都可以用來代替...,例如:

def will_do_something():
    1

(不能用“批準”一詞,但我可以說這種用法是不被拒絕)


查看完整回答
反對 回復 2019-06-20
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

還可以在指定預期值時使用省略號。博士考試產出:

class MyClass(object):
    """Example of a doctest Ellipsis

    >>> thing = MyClass()
    >>> # Match <class '__main__.MyClass'> and <class '%(module).MyClass'>
    >>> type(thing)           # doctest:+ELLIPSIS
    <class '....MyClass'>
    """
    pass


查看完整回答
反對 回復 2019-06-20
  • 3 回答
  • 0 關注
  • 860 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號