Le contenu du didacticiel Python (chapitre 6) est résumé dans une puce.
Article précédent: Contenu à puces du didacticiel Python (chapitre 5)
introduction
Examen de base pour la certification d'ingénieur Python3 En guise de contre-mesure, il s'agit d'un mémo personnel qui résume le contenu du didacticiel Python (livre) dans des bulletins faciles à mémoriser.
Matériel de référence
Tutoriel Python: https://docs.python.org/ja/3/tutorial/
Chapitre 6: https://docs.python.org/ja/3/tutorial/modules.html
Livres: https://www.oreilly.co.jp/books/9784873117539/
Thème "Chapitre 6 Module"
- Score d'examen de base de la certification d'ingénieur Python3
―― 2/40 questions (5,0%) ☆ ★★★★ (importance: petite)
--Thème
- module
--Fichier de module
- Module d'importation
- Chemin de recherche du module
--Comment fonctionne la compilation de modules
- Module standard
--Paquet
- Importation de colis
- \ _ \ _ Init \ _ \ _. Fichier Py
- \ _ \ _ Tout \ _ \ _ variable
- \ _ \ _ Chemin \ _ \ _ Variable
6. Module
- ** Module ** est un fichier contenant des définitions et des instructions Python.
--Le nom de fichier du module est "nom du module.py"
- Un ensemble de variables accessibles à partir du mode interactif ou des scripts de niveau supérieur est appelé ** module principal **.
- Le nom du module est défini dans la variable globale ** \ _ \ _ name__ ** du module.
- Ce qui est défini dans un module peut être ** importé ** dans un autre module ou module principal.
-
- import fibo * # le module fibo est importé
-
- fibo.fib (1000) * #Appeler la fonction fib () du module fibo
-
- fib = fibo.fib * # Assigne la fonction fib () du module fibo à une variable locale
-
- print (fibo. \ _ \ _ Name__) * # Imprimer le nom du module'fibo '
6.1 En savoir plus sur le module
--Lorsque vous placez une instruction exécutable dans le module, elle sera exécutée au moment suivant.
--Lorsque vous exécutez le module en tant que script.
--Lorsqu'il est appelé par une instruction import d'un autre module (lorsque le nom du module est rencontré pour la première fois).
- Chaque module a une table de symboles privée.
- Vous pouvez également importer d'autres modules à partir d'un module.
- Le nom du module importé est placé dans la table de symboles globale du côté importé.
- ** from ** vous permet d'importer uniquement le nom spécifique du module.
-
- from fibo import fib, fib2 * # Importe uniquement les fonctions fib () et fib2 () du module fibo
-
- depuis l'importation fibo ** # Importer des noms autres que le trait de soulignement _
--import * n'est pas souvent utilisé car il réduit souvent la lisibilité.
6.1.1 Exécuter le module en tant que script
- La commande d'exécution du module Python est la suivante.
-
- argument python fibo.py * # commande d'exécution
--Lorsque vous exécutez le module Python, \ _ \ _ name__ contiendra "\ _ \ _ main__".
-
- if \ _ \ _ name__ == "\ _ \ _ main__": * # Exécuter le code ci-dessous uniquement lors de l'exécution du script
6.1.2 Chemin de recherche du module
- L'interpréteur recherche les modules importés dans l'ordre suivant.
- À l'intérieur du ** module intégré ** (module intégré d'interprétation)
- Liste des répertoires obtenus par la ** variable sys.path **
--sys.path est initialisé à l'emplacement suivant.
--Répertoire avec script d'entrée
--Répertoire actuel si aucun nom de fichier n'est spécifié
--PYTHONPATH (liste des noms de répertoires)
--Par défaut par installation
- Le répertoire dans lequel le lien symbolique est placé n'est pas inclus dans le chemin de recherche du module.
--sys.path peut être modifié par programme après l'initialisation.
- Le répertoire contenant le script en cours d'exécution est placé au début du chemin de recherche.
- L'ordre de recherche est avant le chemin de bibliothèque standard.
- (Attention) Si vous mettez un script avec le même nom qu'un module dans la bibliothèque standard, il sera chargé de préférence.
6.1.3 Fichiers Python "compilés"
--Python met en cache les modules compilés dans le répertoire ** \ _ \ _ pycache__ **.
- Le nom du cache est module.version name.pyc
- ** Nom de la version ** est le code de format de fichier compilé, y compris le numéro de version Python.
- Les modules compilés sont indépendants de la plate-forme.
--Python compare la date et l'heure de modification du code source avec la version du cache pour déterminer si la recompilation est nécessaire.
- Le cache n'est pas vérifié dans les cas suivants.
--Lorsque le module est chargé directement depuis la ligne de commande.
- Dans ce cas, il est toujours recompilé et le résultat n'est pas enregistré.
--Lorsque le fichier source du module n'existe pas.
- Pour prendre en charge la distribution sans source, les éléments suivants sont requis:
--Mettez le module compilé dans le répertoire source.
- Ne mettez pas le fichier source lui-même.
6.2 Module standard
--Python est livré avec une bibliothèque de modules standard.
- La configuration du module est déterminée par les paramètres au moment de l'installation.
--Il existe également des modules d'interprétation intégrés et dépendants de la plate-forme.
- Le module intégré d'interprétation est fourni pour les besoins de performance et pour fournir l'accès aux primitives du système d'exploitation.
- Les modules dépendants de la plate-forme incluent le module winreg pour Windows.
- ** module sys ** est inclus dans tous les interpréteurs Python.
--sys.ps1 ... Définition de la chaîne d'invite principale ('>>>')
--sys.ps2 ... Définition de la chaîne d'invite secondaire ('...')
--Ces deux sont définis uniquement lorsque l'interpréteur est en mode interactif.
--sys.path ... Une liste de chaînes qui spécifient le chemin de recherche du module de l'interpréteur.
- Les répertoires suivants sont les valeurs initiales de sys.path.
--Répertoire avec script d'entrée
--Répertoire actuel si aucun nom de fichier n'est spécifié
--Variable d'environnement PYTHONPATH
- Par défaut intégré
6.3 fonction dir ()
- ** La fonction dir () ** renvoie le nom défini par le module dans une liste triée de chaînes.
--Si un nom de module est spécifié dans l'argument, le nom défini par ce module est renvoyé.
--Si aucun argument n'est donné, renvoie le nom défini au niveau actuel.
- Les noms incluent les noms de variables, de fonctions, de modules, etc.
--Importez le module intégré pour renvoyer le nom de la fonction intégrée ou le nom de la variable.
-
- dir (builtins) * ... Récupère la liste des noms intégrés
6.4 Paquet
- ** Package ** construit les noms de modules Python en utilisant des "noms de modules séparés par des points".
- Le package actuel est une structure hiérarchique de répertoires et un ensemble de modules (fichiers .py).
- Les répertoires qui composent le package doivent contenir le fichier ** \ _ \ _ init__.py **.
-Utilisation du fichier \ _ \ _ init__.py:
--Exécution du code d'initialisation du package
- ** \ _ \ _ all__ ensemble de variables ** (décrit plus loin)
6.4.1 Importer * à partir du package
- Le comportement lors de l'importation * est spécifié pour le package est le suivant.
-Si la variable \ _ \ _ all__ est définie dans le fichier \ _ \ _ init \ _ \ .py, importez le sous-module défini par la variable \ _ \ _ all_.
-Si la variable \ _ \ _ all__ n'est pas définie, les éléments suivants seront importés.
--Importation du package correspondant
--Tous les noms définis dans le corps du package
-Noms définis dans le fichier \ _ \ _ init \ _ \ _. Py et sous-modules chargés explicitement
6.4.2 Référence mutuelle dans le package
- Si le paquet se compose de sous-paquets, il y a deux façons de faire référence au paquet soeur.
- ** Importation absolue ** ... depuis Nom du module (chemin absolu) Nom d'importation
- ** Importation relative ** ... nom du module ftom (chemin relatif) nom d'importation
--Utilisez. (Hiérarchie actuelle du module) ou .. (hiérarchie parent) comme chemins relatifs.
--Utilisez l'importation absolue des modules qui peuvent être utilisés comme module principal.
--Parce que le nom est toujours "\ _ \ _ main \ _ \ _".
6.4.3 Paquets qui s'étendent sur plusieurs répertoires
- ** \ _ \ _ chemin \ _ \ _ variable ** contient une liste qui inclut le répertoire où \ _ \ _ init \ _ \ _. Py existe par défaut.
- L'initialisation est effectuée avant d'exécuter \ _ \ _ init \ _ \ _. Py.
- En réécrivant cette variable, vous pouvez influencer la recherche des modules et sous-packages contenus dans le package.
Article suivant: Le contenu du didacticiel Python (chapitre 7) est résumé dans une puce (en cours de construction).