&_ 34;来自__future__导入..."对最新版本的Python有什么影响?

时间:2018-01-23 04:04:52

标签: python tensorflow

我安装了最新版本的Python。 from __future__ import...语句是否会产生任何影响?有没有"未来"超出我应该知道的最新版本 - "预发布"或测试版对新手来说不是很明显?

我问,因为我正在通过This introductory tutorial to TensorFlow工作,告诉我执行from __future__ import print_function。我真的不确定这是做什么的,以及它是否一直在做 - 没有报告错误......但也没有明显效果。

我已经尝试执行from future...语句作为python会话中的第一件事,或者它在教程中给出的指令序列中。这似乎没有什么区别......除了让一个疯狂的追逐新人!我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

Python 3已经具有print函数,因此当您已经使用Python 3时,from __future__ import print_function将不起作用。如PEP 236所述,将来的语句在编译时处理在运行时,所以无论是否有冗余的未来语句,模块都应该是无法区分的。

即使不需要,导入也不会导致任何错误。这允许开发人员编写在Python 2和Python 3上交叉兼容的Python模块。

答案 1 :(得分:1)

From the documentation on Future Statements:

  

Python 3.0识别的功能包括absolute_import,division,generators,unicode_literals,print_function,nested_scopes和with_statement。它们都是冗余的,因为它们始终处于启用状态,并且只能保持向后兼容性。

所以如果你使用的是Python 3,那么。没有必要。