__Zukunft__ in Python
-
Verwendung von
__future__
fürprint_function
in Python -
Verwendung von
__future__
fürunicode_laterals
in Python -
Verwendung von
__future__
für Division in Python -
Verwendung von
__future__
fürabsolute_import
in Python -
Verwendung von
__future__
fürannotations
in Python -
Verwendung von
__future__
für verschachtelte Bereiche -
Verwendung von
__future__
für Python-Generatoren -
Verwendung von
__future__
für diewith
-Anweisung
__future__
wurde in Python 2.1 eingeführt und seine Anweisungen ändern, wie Python den Code interpretiert. Es weist den Interpreter an, einige Anweisungen als Anweisungen zu kompilieren, die in zukünftigen Python-Versionen verfügbar sein werden. Python verwendet from __future__ import feature
, um die Funktionen von höheren Python-Versionen auf den aktuellen Interpreter zurückzuportieren.
Wenn Sie from __future__ import
sehen, bedeutet dies, dass eine Funktion der neuesten oder einer kommenden Version von Python in eine frühere Version zurückportiert wurde.
In diesem Tutorial werden Funktionen erläutert, die bereits in Python 3 in früheren Python-Versionen mit __future__
aktiviert wurden.
Verwendung von __future__
für print_function
in Python
Die Verwendung des Schlüsselworts print als Funktion anstelle einer Anweisung bringt viel Flexibilität, was dazu beiträgt, die Fähigkeiten des Schlüsselworts print
zu erweitern. Die Hauptfunktion von from __future__ import print_function
besteht darin, die Funktion print
von Python 3 in Python 2 zu bringen.
Beispielsweise,
from __future__ import print_function
for x in range(0, 10):
print(x, sep=" ", end="")
Ausgabe:
0123456789
Beachten Sie, dass print
hier als Funktion verwendet wird, die früher als Anweisung in Python 2.x verwendet wurde
Verwendung von __future__
für unicode_laterals
in Python
Auf diese Weise können Sie den Typ der Zeichenkettenliterale ändern.
String-Literale sind in Python 2 standardmäßig ‘str’, aber wenn wir from __future__ import unicode_literals
verwenden, ändert sich der Typ des String-Literals in Unicode
.
Beispielsweise,
type("h")
Ausgabe:
<type 'str'>
Aber mit from __future__ import unicode_literals
erhalten wir folgende Ausgabe.
from __future__ import unicode_literals
type("h")
Ausgabe:
<type 'unicode'>
Beachten Sie, dass wir mit from __future__ import
nicht jedem String u
voranstellen müssen, um ihn als Unicode
zu behandeln.
Verwendung von __future__
für Division in Python
In Python 2.x-Versionen wird die klassische Division verwendet.
print(8 / 7)
Ausgabe
0
Eine einfache Division von 8 durch 7 gibt in Python 2.x 0 zurück.
Die Verwendung von from __future__ import division
ermöglicht es einem Python 2-Programm, __truediv__()
zu verwenden.
Beispielsweise,
from __future__ import division
print(8 / 7)
Ausgabe:
1.1428571428571428
Verwendung von __future__
für absolute_import
in Python
In Python 2 konnten Sie nur implizite relative Importe haben, während Sie in Python 3 explizite Importe oder absolute Importe haben können. __future__ import absolute_import
erlaubt es, dass die Klammern mehrere import-Anweisungen in Klammern eingeschlossen haben.
Beispielsweise,
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text, LEFT, DISABLED, NORMAL, END
Beachten Sie, dass Sie ohne die Funktion __future__ import absolute_import
nicht mehrere import
-Anweisungen in eine Codezeile einschließen können.
Verwendung von __future__
für annotations
in Python
Annotationen sind Python-Ausdrücke, die verschiedenen Teilen einer Funktion zugeordnet sind.
Hier ändert die Verwendung von from __future__ import annotations
die Art und Weise, wie Annotationen in einem Python-Modul ausgewertet werden. Es verschiebt die Bewertung von Anmerkungen und behandelt alle Anmerkungen auf magische Weise als unterschiedliche Anmerkungen.
Beispielsweise,
from __future__ import annotations
class C:
@classmethod
def make(cls) -> C:
return cls
Beachten Sie, dass der obige Code nur funktionieren würde, wenn der __future__ import
am Anfang des Codes steht, da er die Interpretation des Codes durch Python ändert, d. h. die Annotationen als einzelne Strings behandelt.
Verwendung von __future__
für verschachtelte Bereiche
Mit dem Zusatz __future__ import nested_scopes
wurden statisch verschachtelte Scopes in Python eingeführt. Es ermöglicht die Ausführung der folgenden Codetypen, ohne einen Fehler zurückzugeben.
def h():
...
def m(value):
...
return m(value - 1) + 1
...
Beachten Sie, dass der obige Code vor Python 2.1 einen NameError ausgelöst hätte.
Verwendung von __future__
für Python-Generatoren
Ein Generator ist eine Funktion in Python, die als reguläre Funktion definiert ist. Dies geschieht jedoch mit dem Schlüsselwort “yield” und nicht mit der Rückgabe, wenn ein bestimmter Wert generiert werden muss.
Hier wurden mit der Verwendung von from __future__ import generators
Generatorfunktionen eingeführt, um Zustände zwischen aufeinanderfolgenden Funktionsaufrufen zu speichern.
Beispielsweise,
def gen():
c, d = 0, 1
while 1:
yield d
c, d = d, c + d
Verwendung von __future__
für die with
-Anweisung
Dies eliminiert die Verwendung der try...except
-Anweisungen, indem die Anweisung with
als Schlüsselwort in Python hinzugefügt wird. Es wird hauptsächlich während der Datei-I/O verwendet, wie im folgenden Beispiel gezeigt.
with open("workfile", "h") as a:
read_data = a.read()