IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

creation d'une instance à partir d'une string


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut creation d'une instance à partir d'une string
    Salut à tous,

    voici mon pb:

    J'ai le code d'une classe dans une string et je souhaite créer une instance de cette classe. Comment faire cela?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    code = "class MaClass: 
    def __init__(self):
     pass"
     
    #?????
    #?????
     
    classTest = MaClass()
    Merci d'avance

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Bonjour,

    tu dois utiliser les triples quotes pour utiliser le passage à la ligne dans ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    code = """class MaClass: 
        def __init__(self):
            pass"""
    Je ne sais pas quelle est la meilleur solution pour ton problème, je te propose simplement de créer un module python puis de l'importer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    code = """class MaClass: 
        def __init__(self):
            pass"""
     
    open('temp.py', 'w').write(code)
     
    from temp import MaClass
     
    mc = MaClass()
     
    print mc
    Je ne sais pas ce qui te pousse à devoir faire ce genre de manoeuvre mais il doit exister une solution pour l'eviter.

  3. #3
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    Explique nous le problème que tu veux résoudre, parce que j'ai jamais vu une occasion en Python où faire ce genre de manipulation était bénéfique. C'est possible à faire, c'est juste qu'il y a souvent mieux.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Par défaut
    Tu peux le faire avec le statement exec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    >>> exec code
    >>> mc=MaClass()

  5. #5
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Citation Envoyé par Fructidor Voir le message
    Tu peux le faire avec le statement exec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    >>> exec code
    >>> mc=MaClass()
    Cool, j'aurais appris un truc aujourd'hui, même si j'espère ne pas avoir à l'utiliser

Discussions similaires

  1. Appeler une instance à partir d'une autre classe
    Par Anduriel dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 17/12/2011, 11h53
  2. Réponses: 9
    Dernier message: 01/07/2009, 14h56
  3. Créer une instance à partir d'une variable ? Possible ?
    Par jpboogie dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 25/04/2009, 09h47
  4. Réponses: 5
    Dernier message: 22/05/2008, 14h42
  5. Réponses: 27
    Dernier message: 03/01/2008, 11h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo