簡體   English   中英

Python:如何動態生成代碼?

[英]Python: How to generate the code on the fly?

我遇到了問題,我必須即時生成程序,然后執行它。 我們該怎么做?

您可以使用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是非常不安全的,我建議您安全地使用eval()

聰明的方法:metapython- http ://metapython.org/

根深蒂固且不受普遍尊重的方式: eval() -http : eval()

請問為什么要這么做?

如果您的意思是解釋器,則只需從命令行鍵入“ python”。

如果您只需要評估表達式或某些python代碼,請使用evalliteral_eval取決於您的要求...

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM