tl;dr: グローバル/パブリック名には、XORcist が言ったように AllCaps を使用します。

class Logger: passAliasLogger = Logger

関数のパラメータやローカル関数では、クラスオブジェクトを扱っていることを明確にするために、次のような説明的な名前を付けてください:

def some_func(logger_class): pass

または

def some_func(my_class_classobj): pass

に沿った何か、実際にクラス名に "class" が入っている場合。 classobj については、class_ および klass も参照してください。

Analysis/Motivation (long version)

しっかり読んでいませんが、一見すると PEP 8 はこれに関して明確ではないようです (google の python style guide もそうですね)。

Python では変数名はおそらく単なる名前結合なので、定義ブロックでその名前を結合するか、後で = 等号で何らかのオブジェクトに結合するかは、あまり重要ではないと私は考えています。

この点については、モジュール レベルの「エイリアス」参照は、クラスの命名基準、おそらく AllCaps に従うべきであるという点で XORcist に同意します:

class MyClass(object): pass# goodReferenceToClass = MyClass

しかしながら、パラメータと変数名に関しては、おそらく lowercase_underscores を適用すべきですよね? それだけでは、インスタンスとクラス参照の曖昧さに追い込まれるので、不満です。 すべて小文字の名前は、オブジェクトがインスタンスであることを示唆する試みである可能性があります。 この点については、以下のように、すべて小文字のクラス参照変数名に「class」サフィックスを付けることをお勧めします:

class Logger(object): passdef function_expecting_class_reference(logger_class): pass

私は例のクラス MyClassLogger にリネームしました。実際のシナリオでは、クラス名に "class" という文字が含まれるものはごくわずかだからです。 しかし、後者の場合、私は再び説明的な命名で曖昧さを回避することを提案します。 例えば、classobjのサフィックスを使用することができます:

コメントを残す

メールアドレスが公開されることはありません。