Warm tip: This article is reproduced from serverfault.com, please click

compilation-Python编译器和虚拟机如何处理eval表达式?

(compilation - How does Python Compiler and Virtual Machine handle eval expressions?)

发布于 2020-11-30 23:58:48

假设我有一个使用Python编写的代码,并且在该代码的中间,我有一个eval依赖于某些外部输入表达式,例如:

exp = raw_input() 
eval(exp)

我的问题是:Python的编译器和解释器使用哪种机制来绑定可以与依赖于运行时值的代码一起编译的代码?

Questioner
rmesteves
Viewed
11
Barmar 2020-12-01 08:37:24

Python编译器不在乎其编译代码来自何处。它可以在运行时在执行之前编译来自文件的代码,在使用时python filename可以在执行过程中编译文件import,并且在调用eval()时可以从字符串表达式编译代码exec()这些函数动态调用编译器。