Mes données d'entrée sont une chaîne représentant le type de modèle de banque de données que je souhaite créer. En python, j'utilise la fonction eval()
pour instancier le modèle (sous le code), mais cela semble trop complexe, donc je me demandais s'il y a une façon plus simple pour les gens de faire ça?Instancier un modèle lorsque le type de modèle requis est représenté par un argument de chaîne
>>>model_kind="TextPixels"
>>>key_name_eval="key_name"
>>>key_name="key_name"
>>>kwargs
{'lat': [0, 1, 2, 3], 'stringText': 'boris,ted', 'lon': [0, 1, 2, 8], 'zooms': [0, 10]}
>>>obj=eval(model_type + '(key_name='+tester+ ',**kwargs)')
>>>obj
<datamodel.TextPixels object at 0xed8808c>
code ci-dessus est source de confusion. Ce code est la même idée mais plus facile à comprendre: >>> eval_key_name = "nom_clé" >>> nom_clé = "BORIS" >>> obj = eval (type_modèle + '(nom_clé =' + nom_clé_éval + ', ** kwargs) ') –