Python中编译器与AST模块的区别

3 投票
2 回答
596 浏览
提问于 2025-04-16 15:26

在Python 2.6中,编译器模块已经被弃用了。有没有人知道弃用的原因是什么?
ast模块是直接替代它的吗?在Python 3中,ast模块会被支持吗?

2 个回答

4

是的,ast模块取代了compiler模块。你说的“会被支持”是什么意思呢?Python 3已经发布很多年了,当然ast是它标准库的一部分。

关于移除的原因可以在这里找到。

6

compiler模块是用Python写的一个Python编译器。这个编译器非常慢,而且维护起来很麻烦。

ast模块是一个更聪明的解决方案,它能让你在Python中直接访问导入模块时使用的真正编译器。因为它只是内置编译器的一个可见接口,所以它是不会消失的。

ast并不能完全替代compiler(也就是说,它们的接口不一样),但它确实能处理很多相似的情况。

撰写回答