Klassenvariablen vs. Instanzvariablen für Einzelinstanzklassen
Beim Erstellen von Python-Klassen mit nur einer erforderlichen Instanz stehen Sie möglicherweise vor dem Dilemma wo die Klassenattribute gespeichert werden sollen: in Klassenvariablen oder Instanzvariablen. Beide Optionen haben ihre Vor- und Nachteile.
Instanzvariablen
Instanzvariablen sind für jede Instanz einer Klasse spezifisch. Sie werden innerhalb der __init__-Methode definiert, wie im zweiten bereitgestellten Codebeispiel:
class MyController(Controller): def __init__(self): self.path = "something/" self.children = [AController, BController] def action(self, request): pass
Vorteile:
Nachteile:
Klassenvariablen
Klassenvariablen hingegen werden von allen Instanzen einer Klasse gemeinsam genutzt. Sie werden außerhalb der __init__-Methode definiert, wie im ersten bereitgestellten Codebeispiel:
class MyController(Controller): path = "something/" children = [AController, BController] def action(self, request): pass
Vorteile:
Nachteile:
Empfehlung
Wenn Sie sicher wissen, dass Sie immer nur eine Instanz einer Klasse haben werden, empfiehlt es sich generell, Instanzvariablen zu verwenden. Dies ermöglicht einen etwas schnelleren Zugriff und eliminiert potenzielle Verwirrung oder Probleme mit doppelten Attributen.
Das obige ist der detaillierte Inhalt vonKlassenvariablen oder Instanzvariablen: Welche eignet sich am besten für eine Singleton-Klasse in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!