Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie Singleton in Python

So implementieren Sie Singleton in Python

(*-*)浩
(*-*)浩Original
2019-06-27 09:28:513374Durchsuche

Singleton-Muster ist ein häufig verwendetes Software-Designmuster. Der Hauptzweck dieses Musters besteht darin, sicherzustellen, dass nur eine Instanz einer bestimmten Klasse vorhanden ist. Singleton-Objekte sind praktisch, wenn Sie möchten, dass nur eine Instanz einer bestimmten Klasse im gesamten System angezeigt wird.

So implementieren Sie Singleton in Python

In Python können wir verschiedene Methoden verwenden, um das Singleton-Muster zu implementieren (empfohlenes Lernen: Python-Video-Tutorial)

Tatsächlich handelt es sich bei Pythons Modul um einen natürlichen Singleton-Modus, da beim ersten Import des Moduls eine .pyc-Datei generiert wird. Beim zweiten Import wird die .pyc-Datei generiert direkt geladen werden statt Der Modulcode wird erneut ausgeführt. Daher müssen wir nur die relevanten Funktionen und Daten in einem Modul definieren, um ein Singleton-Objekt zu erhalten.

Verwenden Sie Dekoratoren

def Singleton(cls):
    _instance = {}
    def _singleton(*args, **kargs):
        if cls not in _instance:
            _instance[cls] = cls(*args, **kargs)
        return _instance[cls]

    return _singleton
@Singleton
class A(object):
    a = 1

    def __init__(self, x=0):
        self.x = x
a1 = A(2)
a2 = A(3)

Verwenden Sie Klassen, Wenn wir einen Singleton implementieren, müssen wir die Thread-Sicherheit gewährleisten, die wir benötigen zum Hinzufügen einer internen Sperre

Wir wissen, dass wir beim Instanziieren eines Objekts zuerst die Methode __new__ der Klasse ausführen (wenn wir sie nicht schreiben, wird standardmäßig object.__new__ aufgerufen), um sie zu instanziieren Das Objekt; Führen Sie dann die __init__-Methode der Klasse aus, um das Objekt zu initialisieren. Auf dieser Grundlage können wir den Singleton-Modus

mithilfe von __metaclass__ (Metaklasse)

Weitere technische Artikel zum Thema Python finden Sie in der Spalte

Python-Tutorial, um mehr darüber zu erfahren!

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Singleton in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was bedeutet sep in Python?Nächster Artikel:Was bedeutet sep in Python?