我对这个__future__
模块很着迷——尤其是它能够改变在 python 中解析语句的方式。
最有趣的是如何做类似的事情
from __future__ import print_function
使您能够使用print
(而不是print_function
,就像您期望任何其他正常导入一样)。
我已经阅读了 Python 中的 __future__ 是什么以及如何/何时使用它,以及它是如何彻底工作的,特别是遇到了一个特定的行:
未来语句是对编译器的指令,即应该使用将在指定的 Python 未来版本中可用的语法或语义来编译特定模块。
我很想知道究竟是什么让这成为可能。特别是,如何像
from __future__ import division
可以在python2上启用真正的除法,而
from __future__ import barry_as_FLUFL
可以在 python3 上启用<>
语法(我觉得最有趣的是你必须从 " __future__
" 导入一个特性以实现向后兼容性)。
无论如何,总而言之,我想知道在__future__
导入或导入其工件时编译器如何理解和执行该指令。