Heim >Backend-Entwicklung >Python-Tutorial >Wie implementiert man ein Singleton-Muster in Python für die Protokollierung?
Singletons sind ein Entwurfsmuster, das sicherstellt, dass immer nur eine einzige Instanz einer Klasse erstellt wird. Hier sind Empfehlungen für die Implementierung von Singletons in Python:
Verwenden Sie eine Metaklasse
Diese Methode bietet mehrere Vorteile:
class Singleton(type): _instances = {} def __call__(cls, *args, **kwargs): if cls not in cls._instances: cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs) return cls._instances[cls] class Logger(object): __metaclass__ = Singleton
Korrekturen an anderen Methoden
Im ursprünglichen Beitrag die Basisklassenimplementierung ist falsch. Dazu ist es erforderlich, auf _instances in der Klasse zu verweisen, super() zu verwenden und new so zu korrigieren, dass es eine statische Methode ist, die die Klasse als Argument verwendet.
Wann zu verwenden Singletons
Obwohl es Debatten über ihre Attraktivität gibt, sind Singletons mit Sicherheit geeignet Situationen:
Im dargestellten Szenario, in dem die Protokollierung der Anwendungsfall ist, ist das Singleton-Muster eine geeignete Wahl.
Das obige ist der detaillierte Inhalt vonWie implementiert man ein Singleton-Muster in Python für die Protokollierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!