Какая польза от Ellipsis в Python? - PullRequest
0 голосов
/ 24 февраля 2020

Может ли кто-нибудь помочь, как использовать Ellipse в Python с некоторыми примерами и когда его использовать?

Я провел некоторый поиск по этому вопросу, его можно использовать с функцией:

 def add():
     ...

и с нарезкой в ​​списке.

import numpy
n = numpy.arange(16).reshape(2, 2, 2, 2)

print(n)

print('----------------')
print(n[1,...,1])

[[[[ 0  1]
   [ 2  3]]

  [[ 4  5]
   [ 6  7]]]


 [[[ 8  9]
   [10 11]]

  [[12 13]
   [14 15]]]]
----------------
Ellipsis:[[ 9 11]
 [13 15]]

1 Ответ

1 голос
/ 24 февраля 2020

Первоначально литерал эллипса (вот что такое ...) был очень ограничен, в Python 2 он мог по существу использоваться только как часовой при нарезке, а то, что он делал бы конкретно, не был предписывающим и полностью определяется тем, как будет реагировать контейнер (я не думаю, что какой-либо из контейнеров стандартной библиотеки обрабатывал многоточие, так что в основном это было для numpy).

In Python 3 оператор многоточия был несколько ослаблен, прежнее использование остается, но он также получил новое использование в качестве менее многословной версии pass, которая также является традиционным "многогранным" использованием многоточия, когда вы либо не делаете позаботьтесь о том, что это за тело функции или еще не пришло, чтобы заполнить его, вы можете просто вставить ... вместо pass, это в основном не работает, но выглядит немного лучше / менее шумно:

def do_foo():
    pass

против

def do_foo():
    ...
...