Python 编译器和虚拟机如何处理 eval 表达式?
How does Python Compiler and Virtual Machine handle eval expressions?
假设我在 Python 中有一个代码,在这段代码的中间我有一个 eval
表达式,它取决于一些外部输入,例如:
exp = raw_input()
eval(exp)
我的问题是:Python的编译器和解释器使用哪种机制来绑定可以与依赖于运行时值的代码一起编译的代码?
Python 编译器不关心它正在编译的代码来自哪里。当你运行 python filename
时,它可以在执行前编译来自文件的代码,当你使用import
时,它可以在执行过程中编译文件,当你使用import
时,它可以从字符串表达式编译代码。调用 eval()
或 exec()
。这些函数动态调用编译器。
假设我在 Python 中有一个代码,在这段代码的中间我有一个 eval
表达式,它取决于一些外部输入,例如:
exp = raw_input()
eval(exp)
我的问题是:Python的编译器和解释器使用哪种机制来绑定可以与依赖于运行时值的代码一起编译的代码?
Python 编译器不关心它正在编译的代码来自哪里。当你运行 python filename
时,它可以在执行前编译来自文件的代码,当你使用import
时,它可以在执行过程中编译文件,当你使用import
时,它可以从字符串表达式编译代码。调用 eval()
或 exec()
。这些函数动态调用编译器。