Ich möchte eine Klasse erstellen, die eine Sammlung von farbigen Zeichen enthält, und ich möchte, dass sie wie eine statische Variable aussieht. Aber ich kann aus der Klasse Attribute nicht nennen @classmethod, das heißt die folgenden gibt mir Fehler (NameError: name 'Pegs' is not defined
):Eine Klassenmethode im Klassenattribut aufrufen
class Color:
RED = '\033[31m'
class Pegs:
PEG = '\u25A0'
PEGS = {
'red' : Pegs.generate_peg_from_color(Color.RED)
}
@classmethod
def generate_peg_from_color(cls, color):
return ''.join([color, Pegs.PEG])
Ist es möglich, eine Funktion in einem Klassenattribut zu nennen? Sollte ich den statischen Methodendekorator anstelle der Klassenmethode verwenden? Und warum erzeugt es diesen Fehler?
Nein, das geht nicht; Pegs wird immer noch an dem Punkt definiert, an dem Sie versuchen, darauf zu verweisen. –
Danke. Also muss ich manuell alle Farben definieren? – Liliane