Что означает "..." в определении Python - PullRequest
0 голосов
/ 17 марта 2019

Это может быть очень глупый вопрос, но я не могу понять, что означают три точки в питоне def. Я пытался понять стоимость оператора in в объекте deque (из модуля collections), поэтому я просмотрел код и нашел то, что нашел:

img

Я думал, что они имеют в виду, что метод будет использовать "верхнее" определение при вызове, но если я перейду к переопределенному методу, я ничего не найду, если не абстрактный метод в классе Container .. так что я все еще не могу понять, как работает оператор in для объекта deque.

1 Ответ

0 голосов
/ 17 марта 2019

Вы смотрите файл заглушки .pyi.Что касается этого поста , то заглушка, как следует из названия, предназначена только для описания интерфейса, а не реализации внутри.Следовательно, ... в определении Python действительно означает, что этот файл является просто определением, и вы не можете найти реализацию здесь.

Относительно вашего вопроса о стоимости оператора in в deque см. https://wiki.python.org/moin/TimeComplexity

. В нем упоминается deque, который представлен внутри как двусвязный список, а такжеупоминает, что оператор in для list имеет сложность O (n).Я не думаю, что список с двумя связями изменяет сложность времени, так как вам все равно придется проходить через каждый элемент, т. Е. O (n).

...