Многоточие (Ellipsis, …)
Специальное значение, используемое для передачи различных смыслов.
Представляет специальное значение, используемое в качестве расширения синтаксиса срезов для определения пользовательских контейнеров (типов данных).
Значение многоточия обычно определяется пользователем (возможно, с реализацией __getitem__ для данного типа). Например, для взятия срезов в многомерных массивах (см.
+py3.0 С добавлением литерала
Для отражения концепции «нужно написать» и «умалчивается». Например, при определени функции:
Ниже пример того, как при аннотации многоточие передаёт три разных смысла.
Например, для указания на то, что значение отсутствует или не передано, когда использование других индикаторов, таких как None, неприменимо.
На заметку
При попытке инстанциирования возвращается всегда один и тот же экземпляр.
Значение многоточия обычно определяется пользователем (возможно, с реализацией __getitem__ для данного типа). Например, для взятия срезов в многомерных массивах (см.
numpy
): matrix[0, ..., 0]
# то же что и
matrix[0, Ellipsis, 0]
+py3.0 С добавлением литерала
...
открылись дополнительные возможности использования многоточия. «Нужно написать»
Для отражения концепции «нужно написать» и «умалчивается». Например, при определени функции:
def to_be_done():
...
На заметку
В данном случае многоточие не является семантической альтернативой pass. Если последний принято рассматривать, как индикатор намеренного отсутствия кода, то многоточие обычно ставят в ходе разработки для корректности синтаксиса и указания на то, что код должен быть определён в последующем — TBD (to be defined).
Аннотации типов
Ниже пример того, как при аннотации многоточие передаёт три разных смысла.
def func(some: Callable[..., str], other: str = ...) -> Tuple[str, ...]:
do()
«Стражник»
Например, для указания на то, что значение отсутствует или не передано, когда использование других индикаторов, таких как None, неприменимо.
if value is ...:
do()
Синонимы поиска: Многоточие (Ellipsis, …), ..., elipsis
На заметку
Зарегистрированные пользователи могут публиковать свои Статьи.