Il existe déjà d'excellentes réponses, mais aucune d'entre elles n'aborde une liste complète de __future__
déclaration prend actuellement en charge.
En termes simples, l' __future__
instruction force les interprètes Python à utiliser les nouvelles fonctionnalités du langage.
Les fonctionnalités qu'il prend actuellement en charge sont les suivantes:
nested_scopes
Avant Python 2.1, le code suivant déclencherait une erreur NameError :
def f():
...
def g(value):
...
return g(value-1) + 1
...
La from __future__ import nested_scopes
directive permettra d'activer cette fonctionnalité.
generators
Introduction de fonctions de générateur telles que celle ci-dessous pour enregistrer l'état entre les appels de fonction successifs:
def fib():
a, b = 0, 1
while 1:
yield b
a, b = b, a+b
division
La division classique est utilisée dans les versions Python 2.x. Cela signifie que certaines déclarations de division renvoient une approximation raisonnable de la division ("vraie division") et d'autres renvoient le plancher ("division de l'étage"). À partir de Python 3.0, la véritable division est spécifiée par x/y
, tandis que la division au sol est spécifiée par x//y
.
La from __future__ import division
directive force l'utilisation de la division de style Python 3.0.
absolute_import
Permet aux parenthèses de joindre plusieurs import
instructions. Par exemple:
from Tkinter import (Tk, Frame, Button, Entry, Canvas, Text,
LEFT, DISABLED, NORMAL, RIDGE, END)
Au lieu de:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text, \
LEFT, DISABLED, NORMAL, RIDGE, END
Ou:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text
from Tkinter import LEFT, DISABLED, NORMAL, RIDGE, END
with_statement
Ajoute l'instruction en with
tant que mot clé en Python pour éliminer le besoin d' try/finally
instructions. Les utilisations courantes de ceci sont lors des E / S de fichiers telles que:
with open('workfile', 'r') as f:
read_data = f.read()
print_function
:
Force l'utilisation de l' print()
appel de fonction de style parenthèse Python 3 au lieu de l' print MESSAGE
instruction de style.
unicode_literals
Présente la syntaxe littérale de l' bytes
objet. Cela signifie que des déclarations telles que bytes('Hello world', 'ascii')
peuvent être simplement exprimées par b'Hello world'
.
generator_stop
Remplace l'utilisation de l' StopIteration
exception utilisée dans les fonctions du générateur par l' RuntimeError
exception.
Une autre utilisation non mentionnée ci-dessus est que l' __future__
instruction nécessite également l'utilisation d'interpréteurs Python 2.1+, car l'utilisation d'une ancienne version générera une exception d'exécution.
Références