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 :

compile, eval, module


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 379
    Par défaut compile, eval, module
    Hello à tous,

    quelqu'un à peut-être la solution sous la main...

    voici le problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    S = "def UneFonction( UnParametre )\n  return UnParametre\n"
     
    C = compile( S, '', 'exec' )
    Question: comment appeler la fonction UneFonction qui est compilée et donc le "code" est disponible dans la variable "C", lui transmettre un paramètre et récupérer la réponse???

    je trouve beaucoup d'exemples sur compile(), eval(), mais aucun exemple qui reprend ce simple problème... et du coup pas de solution

    L'idée étant bien sûr de "compiler" du code à la volée, puis de l'exécuter lorsque cela est nécessaire.

    Et la fonction étant l'idéal dans mon cas.

    Question subsidiaire... Comment ajouter le code compilé contenu dans "C" pour que la fonction UneFonction() puisse être disponible dans le code du programme?

    Des idées, des solutions?

    D'avance merci

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Quelque chose comme ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> exec "def UneFonction( UnParametre ):\n  return UnParametre\n"
    >>> dir()
    ['UneFonction', '__builtins__', '__doc__', '__name__']
    >>> UneFonction(123)
    123
    Attention tout de même, c'est pas très sécurisé comme pratique.

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 379
    Par défaut
    a ben oui...

    en fait, je croyais qu'il fallait absolument "compiler", mais de fait, cela correspond exactement à ce que je cherché.

    merci pour la solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compilation de Modules inter-dépendants
    Par ejl07 dans le forum Maven
    Réponses: 2
    Dernier message: 22/05/2007, 16h19
  2. Ordre de compilation des modules
    Par poulacou dans le forum Fortran
    Réponses: 1
    Dernier message: 28/02/2007, 15h15
  3. [Free Pascal] You need ObjFpc (-S2) or Delphi (-Sd) mode to compile this module
    Par Maxence45 dans le forum Free Pascal
    Réponses: 2
    Dernier message: 17/02/2007, 15h56
  4. [Apache] compiler le module pour Ruby mod_ruby.so ?
    Par Mescalito dans le forum Apache
    Réponses: 1
    Dernier message: 02/11/2005, 18h28
  5. Compiler un module sans recompiler tout le noyau
    Par khayyam90 dans le forum Administration système
    Réponses: 7
    Dernier message: 22/09/2005, 03h16

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