使用compile()
函数,我们可以将源代码转换为可运行的代码对象。
**compile (source, file_name, mode, flags=0, d optimize=-1)**#where source can be String,a byte string,or abstract syntax tree
complile()
参数:
编译函数以源代码作为主要输入。其他参数是源代码的文件名、指示源代码类型的模式、标志以及向编译器指示的 dont _ inherit 和指定优化级别的优化
参数 | 描述 | 必需/可选 |
---|---|---|
来源 | 字符串、字节字符串或抽象语法树(AST) | 需要 |
文件名 | 有来源的文件,如果来源不是来自文件,可以给出任何名称 | 需要 |
方式 | 3 个可能的值- |
eval:如果源是单个表达式 single:如果源是单个交互语句 exec:如果源是一个语句块 | 需要 | | 旗帜 | 默认零表示哪个未来语句会影响编译 | 可选择的 | | 其中 _inherit | 默认值为假,表示哪个未来语句会影响编译 | 可选择的 | | 使最优化 | 编译器的优化级别,默认值-1 | 可选择的 |
编译()返回值
根据传递的参数,源代码将被转换为 python 代码对象。
| 投入 | 返回值 | | Python 源代码 | Python 代码对象 |
Python 中的编译()
方法示例
示例 1:作为源代码的代码块
pythonSource = 'n1 = 10\n n2=20\nsum=n1 + n2 \n print("sum =",sum)' pyth pythonSource,'randomName','exec')
exec(pythonCodeObj)
输出:
sum = 30
示例 2:作为源的单个语句
pythonSource = 'print("Hi , I am a single statement)' pyth pythonSource,'randomName','eval')
exec(pythonCodeObj)
输出:
Hi I am a single statement