Maison > développement back-end > Tutoriel Python > Comment puis-je importer correctement des modules Python à partir de variables de chaîne ?

Comment puis-je importer correctement des modules Python à partir de variables de chaîne ?

Mary-Kate Olsen
Libérer: 2024-11-29 01:38:11
original
1012 Les gens l'ont consulté

How Can I Correctly Import Python Modules from String Variables?

Importation de modules à partir de variables de chaîne avec l'import

Dans le domaine de la programmation Python, on peut rencontrer le besoin pour importer des modules dynamiquement en fonction de variables de chaîne. Cependant, cette approche peut donner des résultats inattendus par rapport aux déclarations d'importation traditionnelles. Dans cet article, nous approfondissons le fonctionnement interne de la fonction import de Python et élucidons les différences entre ces deux approches.

Considérons le scénario suivant : nous souhaitons obtenir une liste des classes principales de un sous-module de la bibliothèque matplotlib. Pour ce faire, on tente de charger le sous-module à partir d'une chaîne en utilisant __import__ :

import matplotlib.text as text
x = dir(text)

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

Quand on compare les listes 'x' et 'y', on découvre que 'y' contient des éléments inattendus non présents dans 'x'. Cela suggère que import charge des informations supplémentaires dont nous n'avons pas besoin.

La clé pour comprendre ce comportement réside dans le paramètre fromlist de import__. Par défaut, ce paramètre est une liste vide, qui demande à __import de charger tous les attributs disponibles à partir du module spécifié. Pour remédier à ce problème, nous devons spécifier explicitement une chaîne vide ('') dans la fromlist :

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

Avec cette modification, 'i' fait désormais exclusivement référence au sous-module 'matplotlib.text', et 'y' contient la liste souhaitée des classes principales.

Alternativement, dans Python 3.1 ou version ultérieure, nous pouvons utiliser le module importlib pour obtenir le même résultat :

import importlib

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

En comprenant les complexités des mécanismes d'importation de Python, nous pouvons naviguer efficacement dans les nuances du chargement des modules et garantir que nos programmes se comportent comme prévu.

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