В Python, что означает "i" в расширении .pyi?
В PEP-484 он упоминает .pyi - это "заглушка", но мне не нужна мнемоническая помощь на расширение. Так значит ли "я" означает "включить"? "Реализация"? "Интерфейс"?
В Python, что означает "i" в расширении .pyi?
В PEP-484 он упоминает .pyi - это "заглушка", но мне не нужна мнемоническая помощь на расширение. Так значит ли "я" означает "включить"? "Реализация"? "Интерфейс"?
Я думаю, что i
в .pyi
означает "Интерфейс"
Определение для интерфейса в Java:
Интерфейс в языке программирования Java - это абстрактный тип, который используется для определения поведения, которое должны реализовывать классы.
Каждый модуль Python представлен "заглушкой"
.pyi
. Это обычный файл Python (т.е. Он может интерпретироваться Python 3), за исключением того, что все методы пусты.
Файл-заглушка содержит только описание открытого интерфейса модуля без каких-либо реализаций.
Поскольку "Интерфейсы" не существуют в Python (см. Этот вопрос SO между классом Abstract и Interface), я думаю, дизайнеры намеревались выделить для него специальное расширение.
pyi
реализует файл-заглушку (определение от Мартина Фаулера)
Заглушки: предоставляют постоянные ответы на вызовы, сделанные во время теста, обычно вообще не отвечая ни на что, кроме того, что запрограммировано для теста.
Но люди лучше знакомы с интерфейсами, чем с "заглушками", поэтому было проще выбрать .pyi
, чем .pys
чтобы избежать ненужной путаницы.
Очевидно, PyCharm создает файл .pyi для своих собственных целей:
Файлы *.pyi используются PyCharm и другими инструментами разработки для предоставления больше информации, такой как подсказки типа PEP 484, чем она может почерпнуть из Самоанализ типов и методов расширения. Они не предназначены для импортированы, выполнены или использованы для любых других целей, кроме предоставления информации к инструментам. Если вы не используете инструмент, который использует файлы .pyi, то Вы можете спокойно проигнорировать этот файл.
Смотрите: https://www.python.org/dev/peps/pep-0484/ https://www.jetbrains.com/help/pycharm/2016.1/type-hinting-in-pycharm.html
Этот комментарий был найден в: python27/Lib/site-packages/wx/core.pyi