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

  1. #1
    Membre confirmé 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
    Points : 616
    Points
    616
    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 expérimenté 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
    Points : 1 728
    Points
    1 728
    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 éclairé
    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
    Points : 803
    Points
    803
    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 habitué
    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
    Points : 139
    Points
    139
    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 expérimenté 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
    Points : 1 728
    Points
    1 728
    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