__Zukunft__ in Python
-
Verwendung von
__future__fürprint_functionin Python -
Verwendung von
__future__fürunicode_lateralsin Python -
Verwendung von
__future__für Division in Python -
Verwendung von
__future__fürabsolute_importin Python -
Verwendung von
__future__fürannotationsin 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()