Maison >développement back-end >Tutoriel Python >Pourquoi `__import__` ne parvient-il pas à importer complètement les sous-modules en Python et comment puis-je y remédier ?
En Python, l'importation de modules joue un rôle crucial dans l'organisation et la réutilisation du code. Cependant, lorsque vous tentez d'importer un sous-module à partir d'une variable chaîne à l'aide de la fonction import, des résultats déroutants peuvent survenir.
Problème :
Considérez le code suivant :
import matplotlib.text as text x = dir(text) i = __import__('matplotlib.text') y = dir(i) j = __import__('matplotlib') z = dir(j)
La comparaison des trois listes x, y et z révèle des différences inattendues. Plus précisément, la liste y manque d'informations sur les classes principales du sous-module matplotlib.text, qui est présent dans la liste x.
Solution :
L'import la fonction nécessite une compréhension approfondie. En ajoutant un argument de chaîne vide au paramètre fromlist, nous pouvons spécifier que nous voulons importer le sous-module lui-même :
i = __import__('matplotlib.text', fromlist=[''])
Maintenant, la variable i fera référence au sous-module matplotlib.text, et la liste y contiendra le informations souhaitées.
Alternativement, à partir de Python 3.1, nous pouvons utiliser le importlib package :
import importlib i = importlib.import_module("matplotlib.text")
Remarques supplémentaires :
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!