Как стать автором
Обновить

Комментарии 4

Можно ещё использовать Ellipsis в тестах в роли "какой-то объект". Некоторые параметризованные тесты содержат наборы данных, в которых только часть параметров имеет значение, для остальных можно использовать Ellipsis в роли "тут какой-то, неважно какой объект, главное что это не False и не None".

False и None - вполне себе обычные значения для аргумента функции, поэтому их не всегда удобно использовать, когда хочется написать понятный тест.

bool(...) даёт True, кстати, и это важное, и наверное, единственное отличие этого объекта от None.

bool(...) даёт True, кстати, и это важное, и наверное, единственное отличие этого объекта от None.

Да. Остальные отличия - только в том, как эти объекты используются.
Из документации:

None

This type has a single value. There is a single object with this value. This object is accessed through the built-in name None. It is used to signify the absence of a value in many situations, e.g., it is returned from functions that don’t explicitly return anything. Its truth value is false.

Ellipsis

This type has a single value. There is a single object with this value. This object is accessed through the literal ... or the built-in name Ellipsis. Its truth value is true.

Спасибо за статью. Насколько я помню, сам Гвидо Ван Россум рекомендует использовать эллипсы, так что можно не бояться за best-practice :)

Встретился недавно разбираясь в кодах yolov5 yolov8, это был как раз срез где вместо x[:,:, y] было x[..., y]

Зарегистрируйтесь на Хабре, чтобы оставить комментарий