2010-10-20 10 views
1

J'ai un problème, je dois générer le programme à la volée et ensuite l'exécuter. Comment pourrions-nous faire cela?Python: Comment générer le code à la volée?

+7

Pouvez-vous être un peu plus précis? – anijhaw

+0

Concrètement, que voulez-vous que votre code fasse? Des fonctions d'ordre supérieur pourraient être en ordre. Chacun pourrait servir de sorte de modèle pour la fonctionnalité dont vous avez besoin. – aaronasterling

Répondre

6

Vous pouvez utiliser la fonction eval() pour exécuter du code à partir d'une chaîne

Un exemple serait:

import math 

test=r"dir(math)" 

eval(test) 

Sortie

['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'hypot', 'isinf', 'isnan', 'ldexp', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc'] 

Cependant, l'utilisation eval est très dangereux, je vous suggérer de passer par using eval() safely

+0

Vous pouvez au moins laisser des commentaires lorsque vous downvote – anijhaw

+0

Là, avoir un upvote;) – tback

2

Si vous voulez dire l'interpréteur, tapez simplement 'python' depuis la ligne de commande.

2

Si vous avez juste besoin d'évaluer e Xpression ou un code Python utilisation eval ou literal_eval dépend de vos besoins ...

Si vous avez besoin de générer des fichiers .py, vous devrez peut-être générateur de code, voici le générateur de code de base: http://effbot.org/zone/python-code-generator.htm et vous pouvez exécuter votre code utilisant execfile

Questions connexes