1. ホーム
  2. python

[解決済み] Pythonの拡張子.pyiの "i "は何を表すのですか?

2022-06-30 13:04:48

質問

Pythonで、"i"は何を表しますか? .pyi の拡張子で何を表すのでしょうか?

PEP-484 という記述があり .pyi はスタブファイルであることを述べていますが、拡張子に関するニーモニックヘルプはありません。つまり、"i" は "Include" か "Implementation" か "Interface" を意味するのでしょうか?

どのように解決するのですか?

私は i.pyi は「インターフェイス」を意味します。

でのインターフェイスの定義 Java :

<ブロッククオート

Javaプログラミング言語におけるインターフェースは、クラスが実装しなければならない動作を指定するための クラスが実装しなければならない振る舞いを指定するために使用されます。

各Pythonモジュールは .pyi "stub"で表されます。これは通常の Pythonファイルです(つまり、Python 3で解釈できます)。 メソッドがすべて空であることを除けば メソッドが空であること .

  • 'Mypy' リポジトリで、彼らは明確に"stub"ファイルをパブリックインターフェースとして言及しています。

スタブファイルには パブリックインターフェース の を記述しているだけで、実装はありません。

Python には "Interfaces" が存在しないため、(この 抽象クラスとインターフェイスの違いについての質問 を参照)、設計者はそのために特別な拡張機能を提供することを意図していると思います。

pyi はスタブファイルを実装しています (定義は マーティン・ファウラー )

<ブロッククオート

スタブ : テスト中に行われる呼び出しに対して定型的な回答を提供します。 テスト用にプログラムされたもの以外には全く反応しない。

しかし、人々はスタブファイルよりもインターフェイスの方に馴染みがあるので、より簡単に .pyi よりも .pys を使うことで、不必要な混乱を避けることができます。