Erstellen Sie eine Instanz einer vordefinierten Klasse aus einer Zeichenfolge in Python

Ein Memo, das ich ausprobiert habe.

Annahme

.
├── main.py
└── classes.py

classes.py


class Hoge(object):

    def __init__(self):
        self.name = 'hoge'

    def get_name(self):
        print(self.name)

class Fuga(object):

    def __init__(self):
        self.name = 'fuga'

    def get_name(self):
        print(self.name)

Muster, die Globale verwenden

main.py


#Abgesehen von hier`from classes import *`Aber ja
from classes import Hoge
from classes import Fuga

cls = globals()['Hoge']
instance = cls()
instance.get_name()  #=> 'hoge'

cls = globals()['Fuga']
instance = cls()
instance.get_name()  #=> 'fuga'

Muster mit getattr

main.py


import classes

cls = getattr(classes, 'Hoge')
instance = cls()
instance.get_name()  #=> 'hoge'

cls = getattr(classes, 'Fuga')
instance = cls()
instance.get_name()  #=> 'fuga'

Das Zielmodul von getattr (in diesem Fall classes) muss eine Klasse enthalten, die dynamisch durch eine Zeichenfolge angegeben wird. Tatsächlich denke ich, dass es oft in 1 Klasse und 1 Datei unterteilt ist, so dass es nicht sehr praktisch zu sein scheint. Nur als eine Methode.

Ich denke, es gibt andere Möglichkeiten, aber verwendet das praktische Muster "Globale"?

Recommended Posts

Erstellen Sie eine Instanz einer vordefinierten Klasse aus einer Zeichenfolge in Python
So erstellen Sie eine Instanz einer bestimmten Klasse aus dict mit __new__ () in Python
Generieren Sie eine Klasse aus einer Zeichenfolge in Python
Erstellen Sie ein Datum / Uhrzeit-Objekt aus einer Zeichenfolge in Python (Python 3.3).
Erstellen Sie eine zufällige Zeichenfolge in Python
Verschiedene Möglichkeiten, um in Python ein Array von Zahlen von 1 bis 10 zu erstellen.
Fügen Sie ein Objekt in eine Zeichenfolge in Python ein
Ich möchte einen Teil der Excel-Zeichenfolge mit Python einfärben
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Nehmen Sie eine Instanz einer Python-Ausnahmeklasse nicht direkt als Argument für die Ausnahmeklasse!
Finden Sie die scheinbare Breite einer Zeichenfolge in Python heraus
Referenzreihenfolge von Klassenvariablen und Instanzvariablen in "self. Klassenvariablen" in Python
Python: Erstellen Sie ein Wörterbuch aus einer Liste von Schlüsseln und Werten
Python> Aus einer mehrzeiligen Zeichenfolge anstelle einer Datei lesen> io.StringIO ()
Erstellen Sie einen DI-Container mit Python
Django: Klasse aus String importieren
Erstellen Sie einen Pandas-Datenrahmen aus einer Zeichenfolge.
Erstellen Sie eine Binärdatei in Python
Wie kann man schnell die Häufigkeit des Auftretens von Zeichen aus einer Zeichenfolge in Python zählen?
So machen Sie einen String in Python zu einem Array oder ein Array zu einem String
Format, wenn eine lange Zeichenfolge als Python-Argument übergeben wird
Versuchen Sie, mit Python3 eine Zeichenfolge aus einem Bild zu extrahieren
So erhalten Sie eine Zeichenfolge aus einem Befehlszeilenargument in Python
Rufen Sie die Formel in der Excel-Datei als Zeichenfolge in Python ab
Ich bin gestorben, weil ich dachte, eine Python-Klassenvariable sei eine Instanzvariable
Generieren Sie eine erstklassige Sammlung in Python
Konvertierung der Zeichenfolge <-> Datum (Datum, Datum / Uhrzeit) in Python
Erstellen Sie mit Class einen Python-Funktionsdekorator
Zeigen Sie eine Liste der Alphabete in Python 3 an
Erstellen Sie eine einfache GUI-App in Python
# 5 [python3] Extrahiert Zeichen aus einer Zeichenfolge
[Python] Ruft eine Liste der Instanzvariablen ab
Erstellen Sie eine Deb-Datei aus einem Python-Paket
[GPS] Erstellen Sie eine kml-Datei mit Python
Memorandum zum Löschen von Python-Strings
Treffen Sie eine Methode einer Klasseninstanz mit der Python Bottle Web API
Die eval () -Funktion, die eine Zeichenfolge als Ausdruck in Python berechnet
Holen Sie sich zu jeder Tageszeit eine Datums- / Uhrzeitinstanz in Python
[Python] [Word] [python-docx] Versuchen Sie, mit python-docx eine Vorlage für einen Wortsatz in Python zu erstellen
[Python] -Klasse, Instanz
Python-Klasse, Instanz
Bearbeiten Sie Excel in Python, um eine Pivot-Tabelle zu erstellen
Erstellen Sie in 1 Minute eine Vim + Python-Testumgebung
Zeichnen Sie in Python ein Diagramm einer quadratischen Funktion
Erstellen Sie eine GIF-Datei mit Pillow in Python
Einbetten von Variablen in Python-Strings
So erstellen Sie ein Funktionsobjekt aus einer Zeichenfolge
Erstellen Sie ein C-Array aus einer Python> Excel-Tabelle
[Python] Erstellen Sie eine Liste mit verschiedenen Zeichentypen
Erstellen Sie eine Datei, die in der Skriptsprache ausgeführt werden kann
Holen Sie sich den Aufrufer einer Funktion in Python
Ich möchte mit Python ein Fenster erstellen
Erstellen Sie in Python ein Diagramm der Standardnormalverteilung
[Python-Pandas] Erstellen Sie einen leeren DataFrame aus einem vorhandenen DataFrame