首先,
from __future__ importprint_function必须是脚本中的第一行代码(除了下面提到的一些例外)。第二,正如其他答案所说,您现在必须
from__future__ import print_function;将
from __future__ import print_functionimport sys, os, timefor x in range(0,10): print(x, sep=' ', end='') # No need for sep here, but okay :) time.sleep(1)
__future__语句必须位于文件的顶部,因为它们会更改语言的基本内容,因此编译器需要从一开始就了解它们。从文档中:
将来的语句在编译时会得到特别的识别和处理:更改核心结构的语义通常是通过生成不同的代码来实现的。甚至可能是新功能引入了新的不兼容语法(例如新的保留字)的情况,在这种情况下,编译器可能需要以不同的方式解析模块。直到运行时才能推迟此类决策。
该文档还提到,
__future__语句之前只能包含模块文档字符串,注释,空白行和其他将来的语句。



