Pythonファイルの命名規則?


137

PEP-8 https://www.python.org/dev/peps/pep-0008/#package-and-module-namesのこの部分を見ました

これがモジュール/クラス/パッケージのファイル名を参照しているかどうかはわかりません。

それぞれの例が1つある場合、ファイル名はすべて小文字にし、必要に応じてアンダースコアを使用する必要がありますか?または、他の何か?


4
TL; DR:二つのクラスFooBarFooBizの両方がファイルに行くかもしれないsomepkg/foobar.py(したがって:from somepkg.foobar import FooBar)が、クラスがTimerErrorで行くことができるexcept/timer_error.py(したがってfrom except.timer_error import TimerError削除するので、)CamelCaseときどき読み単語難しくなり、したがってsnake_case、ファイル名に使用することができます。
マイケル

回答:


156

https://www.python.org/dev/peps/pep-0008/#package-and-module-namesを引用:

モジュールには、すべて小文字の短い名前を付ける必要があります。読みやすさを改善する場合は、モジュール名にアンダースコアを使用できます。また、アンダースコアの使用は推奨されていませんが、Pythonパッケージには、すべて小文字の短い名前を付ける必要があります。

以下のためのクラス

クラス名は通常、CapWords規則を使用する必要があります。

そして、機能と(ローカル)変数名は次のようになります。

小文字、読みやすさを向上させるために必要に応じて単語をアンダースコアで区切って

モジュール、クラス、パッケージの違いについては、この回答を参照してください。

  • Pythonモジュールは単なるPythonソースファイルであり、クラス、関数、グローバル変数を公開できます。
  • Pythonパッケージは、単にPythonモジュールのディレクトリです。

それで、PEP 8はあなたにそれを伝えます

  • モジュール(ファイル名)には、すべて小文字の短い名前を付ける必要があり、アンダースコアを含めることができます。
  • パッケージ(ディレクトリ)は、できればアンダースコアなしで、すべて小文字の短い名前にする必要があります。
  • クラスはCapWords規則を使用する必要があります。

PEP 8は、名前は短くすべきだと言っています。この回答は、変数名を作成するときに考慮すべきことの良い概要を提供します。変数名は、他の名前(クラス、パッケージなど)にも適用されます。

  • 変数名は完全な記述子ではありません。
  • コメントに詳細を記入してください。
  • あまりにも具体的な名前は、あまりにも具体的なコードを意味する場合があります。
  • クイックルックアップのために短いスコープを保持します。
  • 読みやすさについて考える時間を費やします。

最後に、命名規則の概要をGoogle Pythonスタイルガイドに示します。


5
そして、私は恥ずかしいことに私の理解を確認するようにお願いします、モジュールにはクラスが含まれています-あなたはモジュール内でクラスを使用し、1つのモジュールに複数のクラスを持つことができますか?
ダークエース

6
はい、モジュールには0、1、またはそれ以上のクラスを含めることができます。
-agold

1
すべてのパッケージがクラスと同じようにCapsWordsの規則に従っていたため、プロジェクトが手に負えなくなる前にこれを見つけたことがうれしいです。
バスヤンセン

1
@pypmannetjiesこれは実際には別の質問ですが、短い理解できない名前よりも長い理解可能な名前を好むべきだと思います。
agold

1
パッケージ名には、「アンダースコアの使用は推奨されていません」とあり、禁止されていません。Pythonの哲学では、「実用性は純粋さよりも優れていますが」というルールに従う必要があります。もちろん、最高のルールに従うための方法を見つけることですし、実用的では(多分、いくつかのパッケージは名前を分割するために作るsome> long> nameの代わりにsomelongname?)
Juh_

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.