Créer une instance d'une classe prédéfinie à partir d'une chaîne en Python

Un mémo que j'ai essayé.

supposition

--Utilisation de Python3.5.2.

.
├── 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)

Modèles utilisant des globaux

main.py


#En dehors d'ici`from classes import *`Mais oui
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'

Modèle utilisant 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'

Le module cible de getattr ( classes dans ce cas) doit inclure une classe qui est spécifiée dynamiquement par une chaîne de caractères. En fait, je pense qu'il est souvent divisé en 1 classe et 1 fichier, il semble donc que ce n'est pas très pratique. Comme une seule méthode.

Je pense qu'il y a d'autres moyens, mais est-ce que le modèle pratique utilise «globals»?

Recommended Posts

Créer une instance d'une classe prédéfinie à partir d'une chaîne en Python
Comment créer une instance d'une classe particulière à partir de dict en utilisant __new__ () en python
Générer une classe à partir d'une chaîne en Python
Créer un objet datetime à partir d'une chaîne en Python (Python 3.3)
Créer une chaîne aléatoire en Python
Différentes façons de créer un tableau de nombres de 1 à 10 en Python.
Insérer un objet dans une chaîne en Python
Je veux colorer une partie de la chaîne Excel avec Python
Créer une fonction en Python
Créer un dictionnaire en Python
Ne prenez pas une instance d'une classe d'exception Python directement comme argument de la classe d'exception!
Découvrez la largeur apparente d'une chaîne en python
Ordre de référence des variables de classe et des variables d'instance dans "self. Variables de classe" en Python
Python: créer un dictionnaire à partir d'une liste de clés et de valeurs
Python> Lire à partir d'une chaîne multiligne au lieu d'un fichier> io.StringIO ()
Créer un conteneur DI avec Python
Django: Importer une classe depuis une chaîne
Créez un Dataframe pandas à partir d'une chaîne.
Créer un fichier binaire en Python
Comment compter rapidement la fréquence d'apparition des caractères à partir d'une chaîne de caractères en Python?
Comment transformer une chaîne en tableau ou un tableau en chaîne en Python
Format lors du passage d'une longue chaîne comme argument de python
Essayez d'extraire une chaîne de caractères d'une image avec Python3
Comment obtenir une chaîne à partir d'un argument de ligne de commande en python
Obtenez la formule dans le fichier Excel sous forme de chaîne en Python
Je suis mort en pensant qu'une variable de classe Python était une variable d'instance
Générer une collection de première classe en Python
Conversion de la chaîne <-> date (date, datetime) en Python
Créer un décorateur de fonction Python avec Class
Afficher une liste d'alphabets en Python 3
Créer une application GUI simple en Python
# 5 [python3] Extraire des caractères d'une chaîne de caractères
[python] Obtenir une liste de variables d'instance
Créer un fichier deb à partir d'un package python
[GPS] Créer un fichier kml avec Python
Mémorandum du processus de suppression de chaîne python
Hit une méthode d'une instance de classe avec l'API Web Python Bottle
Fonction Eval () qui calcule une chaîne de caractères comme expression en python
Obtenez une instance datetime à tout moment de la journée en Python
[Python] [Word] [python-docx] Essayez de créer un modèle de phrase de mot en Python en utilisant python-docx
[Python] classe, instance
classe python, instance
Modifier Excel à partir de Python pour créer un tableau croisé dynamique
Créez un environnement de test Vim + Python en 1 minute
Dessiner un graphique d'une fonction quadratique en Python
Créer un fichier GIF en utilisant Pillow en Python
Comment incorporer des variables dans des chaînes python
Comment créer un objet fonction à partir d'une chaîne
Créer un tableau C à partir d'une feuille Python> Excel
[python] Créer une liste de différents types de caractères
Créer un fichier qui peut être exécuté dans le langage de script
Récupérer l'appelant d'une fonction en Python
Je veux créer une fenêtre avec Python
Créer un graphique de distribution normale standard en Python
[Pandas Python] Créer un DataFrame vide à partir d'un DataFrame existant