Heim > Backend-Entwicklung > Python-Tutorial > Wie hat PEP 404 die Importanweisungen von Python geändert?

Wie hat PEP 404 die Importanweisungen von Python geändert?

Barbara Streisand
Freigeben: 2024-12-06 11:36:18
Original
708 Leute haben es durchsucht

How Did PEP 404 Change Python's Import Statements?

Auswirkungen von PEP-404 auf Python-Importanweisungen

Der Python Enhancement Proposal (PEP) 404 führte wesentliche Änderungen an Importanweisungen in Python 3 ein , was die Klarheit und Organisation von Modulimporten verbessert.

Was ist ein Relative? Importieren?

Ein relativer Import bezieht sich auf den Import eines Moduls von einem Speicherort relativ zum aktuellen Modul oder Paket. In Python 2 waren implizite relative Importe zulässig, in Python 3 wurde dies jedoch eingeschränkt.

Änderungen an relativen Importen

PEP-404 erzwingt explizite relative Importe. Module müssen nun mit dem führenden importiert werden. (Punkt) oder .. (Doppelpunkt), um den Pfad relativ zum aktuellen Modulverzeichnis anzugeben. Zum Beispiel:

from .mymodule import MyFunction  # Import from within the current package
from ..otherpackage import OtherClass  # Import from one level up in the directory structure
Nach dem Login kopieren

Einschränkungen für Star-Importe

Star-Importe (Importieren aller Submodule und Attribute aus einem Paket) sind jetzt nur noch auf Modulebene-Code zulässig. Zuvor waren Sternimporte in Funktions- und Klassendefinitionen zulässig, dies wurde jedoch verboten, um Namensraumverschmutzung und unerwartetes Verhalten zu verhindern.

Beispiel:

Python 2-Code:

# Function-level star import
def my_function():
    from mymodule import *
    do_something_with(MyAttribute)

# Class-level star import
class MyClass:
    def __init__(self):
        from otherpackage import *
        self.other_variable = OtherVariable
Nach dem Login kopieren

Python 3-Code:

# Module-level star import
import mymodule
do_something_with(mymodule.MyAttribute)

# Explicit import within function
def my_function():
    from mymodule import MyAttribute
    do_something_with(MyAttribute)

# Explicit import within class
class MyClass:
    def __init__(self):
        from otherpackage import OtherVariable
        self.other_variable = OtherVariable
Nach dem Login kopieren

Durch Erzwingen Durch explizite Importe und die Einschränkung von Star-Importen zielt Python 3 darauf ab, die Importklarheit zu verbessern, Namespace-Kollisionen zu reduzieren und eine strukturiertere und wartbarere Codebasis zu fördern.

Das obige ist der detaillierte Inhalt vonWie hat PEP 404 die Importanweisungen von Python geändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage