มีคำตอบที่ยอดเยี่ยมอยู่แล้ว แต่ก็ไม่มีคำตอบใดที่แสดงรายการที่สมบูรณ์ของ__future__คำสั่งในปัจจุบัน
กล่าวง่ายๆคือการ__future__บังคับให้ล่าม Python ใช้คุณสมบัติใหม่ของภาษา
คุณสมบัติที่รองรับในปัจจุบันมีดังต่อไปนี้:
nested_scopes
ก่อนหน้า Python 2.1 รหัสต่อไปนี้จะเพิ่มNameError :
def f():
...
def g(value):
...
return g(value-1) + 1
...
from __future__ import nested_scopesสั่งจะอนุญาตให้มีคุณลักษณะนี้เพื่อเปิดใช้งาน
generators
ฟังก์ชั่นเครื่องกำเนิดไฟฟ้าที่แนะนำเช่นด้านล่างเพื่อบันทึกสถานะระหว่างการเรียกใช้ฟังก์ชันต่อเนื่อง:
def fib():
a, b = 0, 1
while 1:
yield b
a, b = b, a+b
division
การแบ่งแบบคลาสสิกถูกใช้ในเวอร์ชัน Python 2.x หมายความว่าคำสั่งการหารบางรายการส่งคืนการประมาณแบบสมเหตุสมผลของการหาร ("การหารที่แท้จริง") และการอ้างถึงส่วนอื่น ๆ ส่งคืนพื้น ("การหารชั้น") เริ่มต้นในหลาม 3.0 ส่วนความจริงจะถูกระบุโดยในขณะที่ส่วนชั้นที่ระบุไว้โดยx/yx//y
from __future__ import divisionกองกำลังสั่งการใช้งานของงูหลามส่วน 3.0 สไตล์
absolute_import
อนุญาตให้วงเล็บล้อมหลายimportคำสั่ง ตัวอย่างเช่น:
from Tkinter import (Tk, Frame, Button, Entry, Canvas, Text,
LEFT, DISABLED, NORMAL, RIDGE, END)
แทน:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text, \
LEFT, DISABLED, NORMAL, RIDGE, END
หรือ:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text
from Tkinter import LEFT, DISABLED, NORMAL, RIDGE, END
with_statement
เพิ่มคำสั่งwithเป็นคำหลักใน Python เพื่อลดความต้องการtry/finallyคำสั่ง การใช้งานทั่วไปของสิ่งนี้คือเมื่อทำไฟล์ I / O เช่น:
with open('workfile', 'r') as f:
read_data = f.read()
print_function:
บังคับให้ใช้print()การเรียกฟังก์ชันวงเล็บสไตล์ Python 3 แทนprint MESSAGEคำสั่ง style
unicode_literals
แนะนำไวยากรณ์ตัวอักษรสำหรับbytesวัตถุ ความหมายว่างบเช่นสามารถแสดงเป็นเพียงbytes('Hello world', 'ascii')b'Hello world'
generator_stop
แทนที่การใช้StopIterationข้อยกเว้นที่ใช้ภายในฟังก์ชันตัวสร้างด้วยRuntimeErrorข้อยกเว้น
การใช้งานอย่างอื่นที่ไม่ได้กล่าวถึงข้างต้นคือ__future__คำสั่งนั้นต้องการการใช้งาน Python 2.1+ ล่ามเนื่องจากการใช้รุ่นเก่าจะทำให้เกิดข้อยกเว้นรันไทม์
อ้างอิง