Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何动态生成代码?_Python - Fatal编程技术网

Python:如何动态生成代码?

Python:如何动态生成代码?,python,Python,我遇到了一个问题,我必须动态生成程序,然后执行它。 我们怎么能做到这一点呢?如果您指的是解释器,只需在命令行中键入“python”。智能方式:metapython-- 很多人嘲笑和不受普遍尊重的方式:eval()- 请问,您为什么要这样做?您可以使用eval()函数从字符串执行代码 例如: import math test=r"dir(math)" eval(test) 输出 ['__doc__', '__name__', '__package__', 'acos', 'acosh', '

我遇到了一个问题,我必须动态生成程序,然后执行它。
我们怎么能做到这一点呢?

如果您指的是解释器,只需在命令行中键入“python”。

智能方式:metapython--

很多人嘲笑和不受普遍尊重的方式:
eval()
-

请问,您为什么要这样做?

您可以使用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是非常不安全的,如果您只需要计算表达式或某些python代码,我建议您通过,使用
eval
literal\u eval
取决于您的需求

如果需要生成.py文件,可能需要代码生成器,以下是基本代码生成器:
然后,您可以使用
execfile

执行代码。您可以更具体一点吗?具体来说,您希望代码做什么?高阶函数可能是有序的。每一个都可以作为您需要的功能的模板。