Importation de modules à partir de variables de chaîne avec "__import__"
Lorsque vous essayez de documenter des sous-modules spécifiques dans la bibliothèque matplotlib (MPL), cela peut être nécessaire d'importer ces sous-modules à partir de chaînes. Cependant, l'utilisation de la fonction "__import__" peut produire des résultats inattendus par rapport aux instructions d'importation standard.
Problème :
Importation d'un sous-module à l'aide de "__import__" (par exemple, __import__( 'matplotlib.text')) ne charge pas complètement le contenu du sous-module comme prévu. En comparant la liste des attributs obtenus à la fois à partir de "__import__" et d'une importation régulière, il est évident que "__import__" inclut les définitions de base de matplotlib ainsi que des éléments superflus, mais manque de classes cruciales du sous-module cible.
Solution :
Pour charger un sous-module à partir d'une chaîne à l'aide de "__import__", spécifiez une liste vide comme deuxième argument (fromlist):
import matplotlib.text as text x = dir(text) i = __import__('matplotlib.text', fromlist='') y = dir(i)
Ce code révisé charge efficacement le sous-module souhaité, produisant la liste d'attributs attendue.
Alternativement, dans les versions Python 3.1 ou ultérieures, on peut utiliser l'importlib module :
import importlib i = importlib.import_module("matplotlib.text") y = dir(i)
Remarques :
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!