68

Python(および他のいくつかの言語)では、クラスの名前は、大文字である必要がある各単語の最初の文字を除いて、小文字で書く必要があることを学びました。例:

class FooBar:
    ...

クラスは、クラスと同じ名前のファイルに入れる必要があります。この例では、ファイルになりますfoobar.pyfooクラスをどこかにインポートしたい場合は、次のようにする必要があります。

from foobar import FooBar

この慣習は私を少し混乱させます。私の直感によると、ファイル名がクラスを示している場合は、のように大文字で最初の文字を使用して記述する必要がありますFooBar.py。これはファイル名ではきれいに見えません。おそらく誰かが私にこれの標準的な慣習は何であるかを教えてもらえますか?

私の質問を理解できるようにしたいと思います。:-)

4

2 に答える 2

66

あなたが提示したのは標準的な慣習です。

パッケージ名とモジュール名

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

モジュール名はファイル名にマップされ、一部のファイルシステムでは大文字と小文字が区別されず、長い名前が切り捨てられるため、モジュール名をかなり短く選択することが重要です。これはUnixでは問題になりませんが、コードが古いMacまたはWindowsバージョン、あるいはDOSに転送されるときに問題が発生します。

CまたはC++で記述された拡張モジュールに、より高いレベル(たとえば、よりオブジェクト指向)のインターフェイスを提供するPythonモジュールが付属している場合、C / C ++モジュールには先頭にアンダースコア(たとえば_socket)があります。

クラス名

ほとんど例外なく、クラス名はCapWords規則を使用します。内部使用のクラスには、さらに先頭にアンダースコアが付いています。

Pythonスタイルガイド


たとえばを参照してください

from configparser import ConfigParser

(ちなみに、Python 2.xではConfigParserでしたが、3.xでは小文字に変更されました)。

于 2011-05-12T13:23:30.857 に答える
16

PEP 8によると:

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

また、ファイルごとに1つのクラスだけを使用する必要はないことにも注意してください。むしろ、関連するクラスを同じファイルに一緒に含める必要があります。(もちろん、ファイルに1つのクラスがあると機能する場合もありますが、常にそうであるとは限りません)

于 2011-05-12T13:25:55.893 に答える