Maison > développement back-end > Tutoriel Python > Comment fonctionne réellement « import * » en Python ?

Comment fonctionne réellement « import * » en Python ?

DDD
Libérer: 2024-11-16 14:45:03
original
815 Les gens l'ont consulté

How Does

Démêler l'énigme de "import *"

Qu'est-ce que "import *" importe ?

En Python, "import *" importe tout du module spécifié dans le module actuel. Cela permet un accès direct aux objets importés sans les préfixer avec le nom du module.

Par exemple :

>>> from math import *
>>> pi
3.141592653589793
>>> sin(pi/2)
1.0
Copier après la connexion

Pris dans le Web des collisions de noms

Cependant, importer "tout" avec "*" n'est pas recommandé car cela peut créer des collisions d'espace de noms avec des variables ou des fonctions existantes. De plus, cela peut s'avérer inefficace si un nombre important d'objets est importé.

Importation explicite ou importation avec "*"

Il est préférable d'importer explicitement uniquement les objets objets nécessaires :

>>> from math import pi
>>> pi
3.141592653589793
>>> sin(pi/2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'sin' is not defined
Copier après la connexion

Alternativement, le module peut être importé sous son propre espace de noms ou alias :

>>> import math
>>> math.pi
3.141592653589793
>>> import math as m
>>> m.pi
3.141592653589793
Copier après la connexion

Exceptions au "* Import"

Dans certains cas, il peut être opportun de tout importer avec "". Par exemple, certaines bibliothèques fournissent des sous-modules spécialement conçus pour être importés avec "" et contiennent des constantes et des fonctions couramment utilisées.

Plongez dans le mécanisme "* Importer"

Avec "import *", les objets suivants sont importés :

  • Tous les noms répertoriés dans le fichier du module Variable "__all__" (si définie).
  • Tous les noms sauf ceux commençant par un trait de soulignement ("_"), sauf si la variable "__all__" est définie.

Subtilité des sous-modules

Contrairement à la perception commune, "from xyz import " fait pas importer des sous-modules. Les sous-modules doivent être explicitement importés séparément, par ex. "depuis urllib.request import ".

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal