Wenn Sie einen Singleton in Python möchten, stellen Sie sich das Modul als Singleton vor

Ich denke.

Wenn Sie einen Verweis auf sich selbst wünschen, im Modul

import sys
self = sys.modules[__name__]

Es ist bequem zu schreiben wie. Wenn Sie die Python3-Serie verwenden

import importlib
self = importlib.import_module(__name__)

Aber es ist okay.

Der Grund, warum ich das plötzlich sagen wollte, ist, dass ich mir den Code angesehen habe, den ich vor langer Zeit geschrieben habe, und dachte, dass es wirklich schwarze Geschichte ist. Sie müssen lediglich die Erstellungsfunktion in einem Modul namens hogefactory.py definieren.

somemodule.py


class HogeFactory:
    @staticmethod
    def create(params):
        """Eine Methode, die ein Hoge-Objekt erstellt und zurückgibt"""
        #Verschiedene komplizierte Verarbeitung
        # ...
        return Hoge(some_args, some_kwargs)

Abgesehen davon, wann sollte ich die statische Python-Methode verwenden? Ich kann mich nicht erinnern, kürzlich geschrieben zu haben.

Recommended Posts

Wenn Sie einen Singleton in Python möchten, stellen Sie sich das Modul als Singleton vor
Wenn Sie einer Variablen in Python einen CSV-Export zuweisen möchten
Holen Sie sich den Aufrufer einer Funktion in Python
Kopieren Sie die Liste in Python
[Python] Wenn Sie ein Streudiagramm mehrerer Cluster zeichnen möchten
[Python] Ein grobes Verständnis des Protokollierungsmoduls
Ausgabe in Form eines Python-Arrays
Was passiert, wenn Sie in Python "A, B als C importieren"?
Wenn Sie den Ausführungsbenutzer mitten in einer Fabric-Aufgabe wechseln möchten, stellen Sie den Kontextmanager ein
Eine Lösung, wenn Sie versehentlich den Python-Interpreter in / usr / local / bin / entfernen.
Ich möchte eine Liste der WebDAV-Dateien im Modul Anfragen anzeigen
[Python] Ruft die Liste der im Modul definierten Klassen ab
Wenn in Python ein "Unicode-Dekodierungsfehler" auftritt
Ein Memorandum über die Umsetzung von Empfehlungen in Python
Wenn Sie eine Methode in einer Ruby-Klasse definieren und dann eine Methode darin definieren, wird sie zu einer Methode der ursprünglichen Klasse.
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
Finden Sie die scheinbare Breite einer Zeichenfolge in Python heraus
Warum ist Pythons main () -if-Anweisung angehängt?
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
[Hinweis] Import von Dateien in das übergeordnete Verzeichnis in Python
Finden Sie die Eigenwerte einer reellen symmetrischen Matrix in Python
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Implementieren Sie das Singleton-Muster in Python
Verwenden Sie Blender als Python-Modul
Wenn VS-Code Python ergänzen soll, ist Microsoft Python Language Server die beste Geschichte
Beherrsche das schwache Ref-Modul in Python
[Python] Wenn Sie eine Datei mit demselben Namen wie das zu importierende Modul erstellen, tritt ein Attributfehler auf.
So bestimmen Sie die Existenz eines Selenelements in Python
Was tun, wenn in Python minus Null angezeigt wird?
So überprüfen Sie die Speichergröße einer Variablen in Python
Löschen Sie ein bestimmtes Zeichen in Python, wenn es das letzte ist
Wenn Sie eine Liste mit dem Standardargument der Funktion angeben ...
Lesen Sie die Standardausgabe eines Unterprozesses zeilenweise in Python
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
Überprüfen Sie, ob Sie in Python eine Verbindung zu einem TCP-Port herstellen können
Rufen Sie die Formel in der Excel-Datei als Zeichenfolge in Python ab
Die Geschichte, ein Modul zu erstellen, das E-Mails mit Python überspringt
Holen Sie sich die Anzahl der Leser von Artikeln über Mendeley in Python
Erstellen Sie ein Kompatibilitätsbewertungsprogramm mit dem Zufallsmodul von Python.
Wenn Sie der Meinung sind, dass die Person, die Sie mit pip eingegeben haben, nicht funktioniert → Verwenden Sie python3 zufällig?
[Django] Was tun, wenn das zu erstellende Modell viele Felder enthält?
So schreiben Sie, wenn Sie eine Zahl nach der Gruppennummer setzen möchten, die durch einen regulären Ausdruck in Python ersetzt werden soll
Was tun, wenn Sie "locale.Error: nicht unterstützte Gebietsschemaeinstellung" erhalten, wenn Sie den Tag vom Datum in Python abrufen?
Überprüfen Sie das Verhalten des Zerstörers in Python
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Übergeben Sie den Pfad des importierten Python-Moduls
Zeigen Sie eine Liste der Alphabete in Python 3 an
Vergleich japanischer Konvertierungsmodule in Python3
Erstellen Sie ein Beziehungsdiagramm von Python-Modulen
Überprüfen Sie, ob die URL in Python vorhanden ist
Führen Sie den Python-Interpreter im Skript aus
Das Ergebnis der Installation von Python auf Anaconda
Überprüfen Sie den Pfad des importierten Python-Moduls
[Python] [Meta] Ist der Python-Typ ein Typ?
Grundlagen zum Ausführen von NoxPlayer in Python
Die Python-Projektvorlage, an die ich denke.
Auf der Suche nach dem schnellsten FizzBuzz in Python
Die Geschichte der Verarbeitung A von Blackjack (Python)