2010-10-20 96 views
1

我遇到了一个问题,我必须立即生成程序然后执行它。 我们该怎么做?Python:如何即时生成代码?

+7

你能更具体一点吗? – anijhaw 2010-10-20 03:35:26

+0

具体来说,你想要你的代码做什么?高阶函数可能是有序的。每个人都可以充当您需要的功能模板。 – aaronasterling 2010-10-20 03:55:25

回答

6

您可以使用eval()函数从字符串中执行代码

一个例子是:

import math 

test=r"dir(math)" 

eval(test) 

输出

['__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'] 

但是使用eval是非常不安全的,我建议你通过using eval() safely

+0

当你downvote你可以atleast留下反馈 – anijhaw 2010-10-20 12:55:41

+0

在那里,有一个upvote;) – tback 2010-10-20 22:23:04

2

如果您是解释器,只需从命令行键入'python'即可。

2

如果你只是需要评估e上的表达或一些Python代码使用evalliteral_eval取决于您的要求...

如果你需要生成.py文件,你可能需要的代码生成器,这里是基本的代码生成器:http://effbot.org/zone/python-code-generator.htm ,然后你可以执行你的代码使用execfile