Je cherche à créer un objet Class, et/ou une instance de classe à partir de son nom contenu dans une chaine.
class A: pass
c=A == c=mais_quelle_est_donc_cette_fonction("A") c = globals('A')
ça ne marche pas chez moi. Par contre ça oui :
# récupère la classe ... cls = globals()['A']
# récupère une instance ... c = globals()['A']()
Sinon, il y a aussi:
import __main__ c = __main__.__dict__['A']() c == A() True
... Mais ça ne fonctionne qu'avec le script principal.
En général, quand je commence à voir des accès à des attributs 'magiques' dans mon code, c'est qu'il y a quelque chose qui cloche...
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Franssoa
Franssoa wrote:
Je cherche à créer un objet Class, et/ou une instance de classe à partir de son nom contenu dans une chaine.
la fonction eval est ce que tu veux.
Merci à toi ainsi qu'à Bruno. Eval est en effet le plus simple. Je pensais simplement être passé à côté d'une fonction spécifique.
Pour info j'utilise la création dynamique de classe pour synchroniser deux carnets d'adresses, avec une table des éléments supprimés (nom_de_classe, no_index)
Franssoa
Franssoa wrote:
Je cherche à créer un objet Class, et/ou une instance de classe à partir
de son nom contenu dans une chaine.
la fonction eval est ce que tu veux.
Merci à toi ainsi qu'à Bruno.
Eval est en effet le plus simple. Je pensais simplement être passé à
côté d'une fonction spécifique.
Pour info j'utilise la création dynamique de classe pour synchroniser
deux carnets d'adresses, avec une table des éléments supprimés
(nom_de_classe, no_index)
Je cherche à créer un objet Class, et/ou une instance de classe à partir de son nom contenu dans une chaine.
la fonction eval est ce que tu veux.
Merci à toi ainsi qu'à Bruno. Eval est en effet le plus simple. Je pensais simplement être passé à côté d'une fonction spécifique.
Pour info j'utilise la création dynamique de classe pour synchroniser deux carnets d'adresses, avec une table des éléments supprimés (nom_de_classe, no_index)