Maison > développement back-end > Tutoriel Python > En quoi `__import__` et `importlib.import_module` diffèrent-ils lors de l'importation de modules à partir de chaînes en Python ?

En quoi `__import__` et `importlib.import_module` diffèrent-ils lors de l'importation de modules à partir de chaînes en Python ?

Linda Hamilton
Libérer: 2024-12-06 09:08:15
original
164 Les gens l'ont consulté

How Do `__import__` and `importlib.import_module` Differ When Importing Modules from Strings in Python?

Différents résultats utilisant "__import__" et l'instruction d'importation pour l'importation de modules à partir de chaînes

Lorsque vous travaillez avec des bibliothèques imbriquées, une tâche courante consiste à importer dynamiquement des sous-modules à l'aide d'une variable de chaîne comme chemin d'importation. Cependant, la fonction "__import__" peut donner des résultats différents par rapport à une instruction d'importation classique.

Dans votre exemple, lorsque vous utilisez "__import__" sans spécifier l'argument "fromlist" :

i = __import__('matplotlib.text')
Copier après la connexion

le module importé i inclut à la fois le module de base matplotlib et quelque chose de supplémentaire. Pour importer spécifiquement le sous-module matplotlib.text, vous pouvez modifier le code comme suit :

i = __import__('matplotlib.text', fromlist=[''])
Copier après la connexion

Dans Python 3.1 ou version ultérieure, vous pouvez également utiliser le module importlib :

import importlib

i = importlib.import_module("matplotlib.text")
Copier après la connexion

Voici quelques notes supplémentaires à prendre en compte :

  • Pour importer des modules à partir de sous-dossiers, le chemin d'importation doit être spécifié en conséquence. Par exemple, pour importer email.py depuis le sous-dossier feature, utilisez :
importlib.import_module("feature.email")
Copier après la connexion
  • Avant Python 3.3, il était obligatoire d'avoir un fichier __init__.py dans le dossier contenant le module en cours d'importation. Ceci n'est plus requis à partir de Python 3.3.

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