이미 훌륭한 답변이 있지만 그중 어느 것도 전체 목록을 다루지 않습니다. __future__
현재 성명서에서 지원 .
간단히 말해, 이 __future__
문장은 파이썬 인터프리터가 언어의 새로운 기능을 사용하도록합니다.
현재 지원되는 기능은 다음과 같습니다.
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 버전에서 사용됩니다. 즉, 일부 구분 문은 합리적인 분할 근사값 ( "실제 구분")을 반환하고 다른 분할 문은 바닥 ( "바닥 구분")을 반환합니다. Python 3.0부터는 진정한 나눗셈이로 x/y
, 바닥 나누기는x//y
.
이 from __future__ import division
지시문은 Python 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
을 키워드로 키워드에 추가하여 명령문 이 필요하지 않습니다 try/finally
. 이것의 일반적인 용도는 다음과 같은 파일 I / O를 수행 할 때입니다.
with open('workfile', 'r') as f:
read_data = f.read()
print_function
:
style 문 print()
대신 Python 3 괄호 스타일 함수 호출을 사용하도록 print MESSAGE
합니다.
unicode_literals
bytes
객체 의 리터럴 구문을 소개 합니다. 과 같은 진술 bytes('Hello world', 'ascii')
은 간단히로 표현 될 수 있음을 의미한다 b'Hello world'
.
generator_stop
StopIteration
생성기 함수 내 에서 사용 된 예외 사용을 예외로 바꿉니다 RuntimeError
.
위에서 언급하지 않은 또 다른 용도 __future__
는 이전 버전을 사용하면 런타임 예외가 발생하므로 명령문에 Python 2.1 이상 인터프리터도 사용해야한다는 것입니다.
참고 문헌