[解決済み] Pythonの拡張子.pyiの "i "は何を表すのですか?
質問
Pythonで、"i"は何を表しますか?
.pyi
の拡張子で何を表すのでしょうか?
で
PEP-484
という記述があり
.pyi
はスタブファイルであることを述べていますが、拡張子に関するニーモニックヘルプはありません。つまり、"i" は "Include" か "Implementation" か "Interface" を意味するのでしょうか?
どのように解決するのですか?
私は
i
で
.pyi
は「インターフェイス」を意味します。
でのインターフェイスの定義 Java :
<ブロッククオートJavaプログラミング言語におけるインターフェースは、クラスが実装しなければならない動作を指定するための クラスが実装しなければならない振る舞いを指定するために使用されます。
- Pythonから タイプシェッド githubリポジトリにあります。
各Pythonモジュールは
.pyi
"stub"で表されます。これは通常の Pythonファイルです(つまり、Python 3で解釈できます)。 メソッドがすべて空であることを除けば メソッドが空であること .
- で 'Mypy' リポジトリで、彼らは明確に"stub"ファイルをパブリックインターフェースとして言及しています。
スタブファイルには パブリックインターフェース の を記述しているだけで、実装はありません。
Python には "Interfaces" が存在しないため、(この 抽象クラスとインターフェイスの違いについての質問 を参照)、設計者はそのために特別な拡張機能を提供することを意図していると思います。
pyi
はスタブファイルを実装しています (定義は
マーティン・ファウラー
)
スタブ : テスト中に行われる呼び出しに対して定型的な回答を提供します。 テスト用にプログラムされたもの以外には全く反応しない。
しかし、人々はスタブファイルよりもインターフェイスの方に馴染みがあるので、より簡単に
.pyi
よりも
.pys
を使うことで、不必要な混乱を避けることができます。
関連
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み] 文字列リテラルの前にある'b'文字は何を意味するのでしょうか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] PythonとCpythonの比較
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonコンテナのための組み込み汎用関数操作
-
python string splicing.join()とsplitting.split()の説明
-
Python百行で韓服サークルの画像クロールを実現する
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み] Pythonにおける抽象クラスとインターフェースの違い