Maison > développement back-end > Tutoriel Python > Comment la PEP 404 a-t-elle modifié les instructions d'importation de Python ?

Comment la PEP 404 a-t-elle modifié les instructions d'importation de Python ?

Barbara Streisand
Libérer: 2024-12-06 11:36:18
original
693 Les gens l'ont consulté

How Did PEP 404 Change Python's Import Statements?

Impact du PEP-404 sur les instructions d'importation Python

La proposition d'amélioration Python (PEP) 404 a introduit des changements importants dans les instructions d'importation dans Python 3 , améliorant la clarté et l'organisation des importations de modules.

Qu'est-ce qu'un parent Importer ?

Une importation relative fait référence à l'importation d'un module à partir d'un emplacement relatif au module ou au package actuel. Dans Python 2, les importations relatives implicites étaient autorisées, mais cela a été restreint dans Python 3.

Modifications apportées aux importations relatives

PEP-404 applique les importations relatives explicites. Les modules doivent maintenant être importés en utilisant le début . (point) ou .. (double point) pour spécifier le chemin relatif au répertoire du module actuel. Par exemple :

from .mymodule import MyFunction  # Import from within the current package
from ..otherpackage import OtherClass  # Import from one level up in the directory structure
Copier après la connexion

Restrictions sur les importations d'étoiles

Les importations d'étoiles (importation de tous les sous-modules et attributs d'un package) ne sont désormais autorisées qu'au niveau du code du module. Auparavant, les importations d'étoiles étaient autorisées dans les définitions de fonctions et de classes, mais cela a été interdit pour éviter la pollution de l'espace de noms et tout comportement inattendu.

Exemple :

Code Python 2 :

# 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
Copier après la connexion

Code Python 3 :

# 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
Copier après la connexion

En appliquant les importations explicites et En restreignant les importations d'étoiles, Python 3 vise à améliorer la clarté des importations, à réduire les collisions d'espaces de noms et à promouvoir une base de code plus structurée et plus maintenable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal