Ich bin es leid, MyLongAdvancedClassName._template einzugeben, um auf Klassenvariablen zuzugreifen. Sie sind manchmal Konstanten, aber nicht immer. Sie werden sagen, ich möchte im Falle von Konstanten Modul Globals verwenden. Aber ich möchte sie in der Nähe des Ortes der Nutzung, nicht am Anfang der Datei definiert haben. Ich mag auch keine Einheimischen, denn im Falle eines langen Strings werden Sie es bei jedem Anruf neu zuweisen.Ist es möglich, in Python indirekt auf den aktuellen Klassennamen zuzugreifen?
Ist es möglich, so etwas wie die folgenden Funktionen ausführen:
_c = MyLongAdvancedClassName
class MyLongAdvancedClassName:
...
_template = " My long advanced text %i "
def method(self):
print _c._template
Sie das tun können, aber Sie haben die '_c = ...' Zeile nach der Klassendefinition zu bewegen . – BrenBarn
Ich habe immer nur 'self._template' verwendet, mit dem Verständnis, dass die Instanzvariable nicht ganz an die Klassenvariable gebunden ist. Diese Klassenvariablen sind für mich Konstanten, daher habe ich noch keine Probleme festgestellt, da ich sie nie neu zuweisen musste. Ich weiß nicht, ob das eine verpönte Übung ist. –