Maison >développement back-end >Tutoriel Python >Quel est le but du commutateur « -m » de Python ?
Les modules Python, unités fondamentales d'organisation, se présentent sous deux formes : modules de code et modules de package. Les modules de code sont constitués de code Python exécutable, tandis que les modules de package englobent des répertoires contenant d'autres modules.
Python attribue des identifiants uniques aux modules, appelés noms de modules et noms de fichiers. En règle générale, les modules sont identifiés par leur nom de module dans le code Python et par leur nom de fichier sur la ligne de commande. Python traduit de manière transparente les noms de modules en noms de fichiers à l'aide de la variable sys.path.
Introduit dans Python 2.4.1, le commutateur -m permettait à l'origine l'exécution de modules à partir de la commande ligne en fonction de leurs noms de modules. Cela fournissait une alternative à la spécification des noms de fichiers. Dans son itération initiale, -m ne prenait en charge que les noms de modules de niveau supérieur.
PEP 338 a étendu -m pour gérer des représentations de noms de modules plus complexes, permettant l'exécution de modules imbriqués tels que http.server. De plus, il exigeait l'évaluation de tous les fichiers __init__.py du package parent.
La dernière avancée clé est venue avec PEP 366, accordant -m la capacité de prendre en charge non seulement les importations absolues mais également explicites. Ceci a été réalisé en définissant la variable package sur le module parent du nom de module donné.
Malgré ses capacités, -m est limité dans le sens où il ne peut exécuter que des modules écrits en Python. (fichiers .py). Les modules de code compilé C ne sont pas pris en charge.
Exécution du module via l'instruction d'importation :
Exécution du module via la ligne de commande avec le nom de fichier :
Exécution du module via la ligne de commande avec le nom du module (-m) :
Le commutateur -m sert d'outil puissant pour exécuter des modules Python à partir de la ligne de commande. Sa capacité à convertir les noms de modules en noms de fichiers, à exécuter des packages locaux et à prendre en charge les importations relatives constitue un moyen pratique et polyvalent de gérer le code Python. Malgré sa limitation à l'exécution de modules basés sur Python, -m reste un atout inestimable pour les développeurs Python.
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!