web-dev-qa-db-ja.com

Pythonクラスのファイル名もキャメルケースにする必要がありますか?

Pythonのクラスは通常、camelCaseを使用してケースされます。

また、クラスを含むファイルをキャメルケースにするのは通常の規則ですか?特にファイルにクラスのみが含まれる場合は?

たとえば、クラスclassNameclassName.pyではなくclass_name.pyに格納する必要がありますか?

27
m4jesticsun

次の回答は、主に this answer からのものです。

PEP 8を使用する場合は、オプションのアンダースコアを使用して、すべて小文字の名前を使用する必要があります。

PEP 8のパッケージとモジュールの命名規則

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

クラスの場合:

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

モジュール、クラス、パッケージの違いについては、 この回答 をご覧ください:

Pythonモジュールは単にPythonソースファイルであり、クラス、関数、グローバル変数を公開できます。

公式の規則では、ファイル名にはすべて小文字を使用します(他の人が既に述べているように)。しかし、理由は言及されていません...

Pythonはクロスプラットフォームで動作します(そして、そのように使用するのが一般的です)が、ファイルシステムは大文字と小文字の使用が異なるため、別のケースを排除することをお勧めします。インスタンスでは、MyClass.pyとmyclass.pyを同じディレクトリに置くことができますが、Windowsではそうではありません!

関連する注意事項として、gitリポジトリにMyClass.pyとmyclass.pyがある場合、または同じファイルの大文字と小文字を変更するだけで、LinuxとWindowsをプッシュ/プルすると、gitはファンキーな動作をする可能性があります。

また、トピックについてはほとんど説明していませんが、同じ流れで、SQLにはこれらの同じ問題があり、異なる標準と構成によってテーブル名にUpperCasesが許可される場合と許可されない場合があります。

個人的には、ファイル名であってもTitleCasing/camelCasingを読む方が楽しいと思いますが、クロスプラットフォームで動作することができるものを実行するときは、最も安全です。

2
BuvinJ

私の質問は、クラスを含むファイルをキャメルケースにすることも通常の規則ですか?特にファイルにクラスのみが含まれている場合

短い答え:いいえ。

より長い回答:必要に応じて、すべて小文字でアンダースコアにする必要があります。

PEP8「パッケージおよびモジュール名」

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

module が何であるかわからない場合:

モジュールは、Python定義とステートメントを含むファイルです。ファイル名は、拡張子.pyが追加されたモジュール名です。

2
Jack