【发布时间】:2018-01-29 18:56:10
【问题描述】:
__future__ 模块让我很着迷——尤其是它能够改变在 python 中解析语句的方式。
最有趣的是如何做类似的事情
from __future__ import print_function
使您能够使用print(而不是print_function,就像您期望的任何其他正常导入一样)。
我已经彻底阅读了What is __future__ in Python used for and how/when to use it, and how it works,特别是遇到了一行:
Future 语句是对编译器的一个指令,即特定的 模块应该使用将被编译的语法或语义 在指定的 Python 未来版本中可用。
我很想知道究竟是什么让这成为可能。特别是像
from __future__ import division
可以在python2上启用真正的除法,而
from __future__ import barry_as_FLUFL
可以在 python3 上启用<> 语法(我觉得最有趣的是你必须从“__future__”导入一个特性才能向后兼容)。
总之,我想知道当__future__ 或其人工制品被导入时,编译器是如何理解和执行指令的。
【问题讨论】:
-
@jonrsharpe "总之,我想知道当 future 或其人工制品被导入时,编译器是如何理解和执行指令的。“我已经完成了我的研究,但无论如何感谢您的反对。
-
我可能应该更改标题以阻止注意力持续时间短的人投反对票。
-
无论我的意见是否值得,我觉得这个问题肯定有一些肉。
-
@Ev.Kounis 这 3 名反对者和 1 名密切投票者会不同意,但无论如何,就像我说的那样......可能是我最初的糟糕标题的错。
标签: python python-2.7 import python-internals compiler-directives