Quelle est la différence entre un module Python et un package ?

Barbara Streisand
Libérer: 2024-11-22 04:58:15
original
941 Les gens l'ont consulté

What's the Difference Between a Python Module and a Package?

Comprendre module et package en Python

En Python, la distinction entre un module et un package s'observe principalement au niveau du système de fichiers . Examinons leurs principales différences :

  • Module : Tout fichier Python est considéré comme un module. Le nom du module est dérivé du nom de base du fichier sans l'extension ".py".
  • Package : Un package est une collection de modules Python. Contrairement aux modules, les packages sont représentés par des répertoires contenant un fichier "__init__.py" supplémentaire. Ce fichier distingue un package d'un répertoire contenant simplement des scripts Python. Les packages peuvent être imbriqués les uns dans les autres à n'importe quelle profondeur, à condition que chaque répertoire ait son fichier "__init__.py".

Bien que cette distinction soit évidente dans l'organisation du système de fichiers, il est important de noter que lorsque vous importez un module ou un package, l'objet correspondant créé par Python est toujours du type « module ». Cependant, dans le cas de l'importation d'un package, seules les variables, fonctions et classes définies dans le fichier "__init__.py" du package sont directement accessibles, pas les sous-packages ou sous-modules.

Exemple

Considérez le package "xml" dans la bibliothèque standard Python :

  • Le Le répertoire "xml" contient un fichier "__init__.py" et plusieurs sous-répertoires.
  • L'un de ces sous-répertoires, "etree", contient un fichier "__init__.py" et un fichier "ElementTree.py". .

Lors de l'import interactif du package :

import xml
Copier après la connexion

Vous remarquez que le "xml" l'objet est de type "module". L'accès aux sous-composants nécessite des importations supplémentaires :

import xml.etree
import xml.etree.ElementTree
Copier après la connexion

Remarque : Python inclut également des modules intégrés tels que "sys" qui sont implémentés en C, mais cette distinction n'est généralement pas incluse. dans les discussions sur les modules et les packages.

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