Что означает "i" в расширении Python.pyi?

В Python, что означает "i" в расширении .pyi?

В PEP-484 он упоминает .pyi - это "заглушка", но мне не нужна мнемоническая помощь на расширение. Так значит ли "я" означает "включить"? "Реализация"? "Интерфейс"?

Ответ 1

Я думаю, что i в .pyi означает "Интерфейс"

Определение для интерфейса в Java:

Интерфейс в языке программирования Java - это абстрактный тип, который используется для определения поведения, которое должны реализовывать классы.

Каждый модуль Python представлен "заглушкой" .pyi. Это обычный файл Python (т.е. Он может интерпретироваться Python 3), за исключением того, что все методы пусты.

  • В репозитории "Mypy" они явно упоминают "заглушки" как общедоступные интерфейсы:

Файл-заглушка содержит только описание открытого интерфейса модуля без каких-либо реализаций.

Поскольку "Интерфейсы" не существуют в Python (см. Этот вопрос SO между классом Abstract и Interface), я думаю, дизайнеры намеревались выделить для него специальное расширение.

pyi реализует файл-заглушку (определение от Мартина Фаулера)

Заглушки: предоставляют постоянные ответы на вызовы, сделанные во время теста, обычно вообще не отвечая ни на что, кроме того, что запрограммировано для теста.

Но люди лучше знакомы с интерфейсами, чем с "заглушками", поэтому было проще выбрать .pyi, чем .pys чтобы избежать ненужной путаницы.

Ответ 2

Очевидно, 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