__Zukunft__ in Python

Hemank Mehtani 10 Oktober 2023
  1. Verwendung von __future__ für print_function in Python
  2. Verwendung von __future__ für unicode_laterals in Python
  3. Verwendung von __future__ für Division in Python
  4. Verwendung von __future__ für absolute_import in Python
  5. Verwendung von __future__ für annotations in Python
  6. Verwendung von __future__ für verschachtelte Bereiche
  7. Verwendung von __future__ für Python-Generatoren
  8. Verwendung von __future__ für die with-Anweisung
__Zukunft__ in Python

__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()