Trước hết, from __future__ import print_function
cần phải là dòng mã đầu tiên trong tập lệnh của bạn (ngoài một số trường hợp ngoại lệ được đề cập dưới đây). Thứ hai, như các câu trả lời khác đã nói, bạn phải sử dụng print
như một chức năng ngay bây giờ. Đó là toàn bộ quan điểm của from __future__ import print_function
; để đưa print
hàm từ Python 3 vào 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__
các câu lệnh cần ở gần đầu tập tin vì chúng thay đổi những điều cơ bản về ngôn ngữ và vì vậy trình biên dịch cần biết về chúng ngay từ đầu. Từ tài liệu :
Một tuyên bố trong tương lai được công nhận và xử lý đặc biệt tại thời gian biên dịch: Các thay đổi về ngữ nghĩa của các cấu trúc cốt lõi thường được thực hiện bằng cách tạo mã khác nhau. Thậm chí có thể là một tính năng mới giới thiệu cú pháp không tương thích mới (chẳng hạn như một từ dành riêng mới), trong trường hợp đó, trình biên dịch có thể cần phân tích mô-đun khác nhau. Những quyết định như vậy không thể được đẩy ra cho đến khi thời gian chạy.
Tài liệu này cũng đề cập rằng những điều duy nhất có thể đi trước một __future__
câu lệnh là chuỗi mô-đun, nhận xét, dòng trống và các câu lệnh khác trong tương lai.