Перш за все, from __future__ import print_function
у вашому сценарії повинен бути перший рядок коду (окрім деяких винятків, згаданих нижче). По-друге, як говорили інші відповіді, тепер ви повинні використовувати print
як функцію. У цьому вся суть from __future__ import print_function
; щоб привести print
функцію з Python 3 в Python 2.6+.
from __future__ import print_function
import sys, os, time
for x in range(0,10):
print(x, sep=' ', end='') # No need for sep here, but okay :)
time.sleep(1)
__future__
Висловлювання повинні знаходитись у верхній частині файлу, оскільки вони змінюють основні елементи мови, і тому компілятору потрібно знати про них з самого початку. З документації :
Майбутнє твердження розпізнається та обробляється спеціально під час компіляції: Зміни в семантиці основних конструкцій часто реалізуються шляхом генерування різного коду. Можливо навіть, що нова функція вводить новий несумісний синтаксис (наприклад, нове зарезервоване слово), і в цьому випадку компілятору може знадобитися розбирати модуль інакше. Такі рішення не можна відсувати до виконання.
У документації також зазначається, що єдиними речами, які можуть передувати __future__
заяві, є модульні докстринг, коментарі, порожні рядки та інші майбутні заяви.