私は、クラス変数にアクセスするためにMyLongAdvancedClassName._templateを入力するのに少し疲れています。それらは時々定数ですが、必ずしもそうではありません。あなたは、定数の場合にモジュールグローバルを使いたいと思うでしょう。しかし、私はファイルの始めではなく、使用場所の近くでそれらを定義したいと思っています。また、長い文字列の場合は、各呼び出しでそれを再割り当てするので、私は地元の人が好きではありません。Pythonで現在のクラス名に間接的にアクセスできますか?
は、次のような何かをすることが可能です:
_c = MyLongAdvancedClassName
class MyLongAdvancedClassName:
...
_template = " My long advanced text %i "
def method(self):
print _c._template
あなたはそれを行うことができますが、クラス定義の後に '_c = ...'行を移動する必要があります。 – BrenBarn
私はいつも 'self._template'を使用しましたが、インスタンス変数がクラス変数に結びついていないということを理解しています。これらのクラス変数は私のための定数なので、私はまだどちらかを再割り当てする必要がないので、問題は発生していません。しかし、これが偽りの練習であるかどうかはわかりません。 –