Packages et __init__.py
Organisez vos modules en packages avec une structure de répertoires adaptée.
Packages et __init__.py est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.
Qu’est-ce qu’un paquet ?
Un paquet est un répertoire qui contient un fichier __init__.py et un ou plusieurs modules. Python considère tout répertoire de ce type comme un paquet depuis lequel vous pouvez effectuer des importations.
mypackage/
__init__.py
utils.py
math_helpers.pyLe fichier __init__.py
__init__.py est exécuté lorsque le paquet est importé. Il peut être vide ou exposer certains noms aux appelants.
# mypackage/__init__.py
from .utils import helper
from .math_helpers import addImporter depuis un paquet
Utilisez la notation avec un point pour importer des sous-modules ou des noms définis dans __init__.py.
import mypackage
from mypackage import helper
from mypackage.math_helpers import add
print(add(2, 3))Sous-paquets
Les paquets peuvent être imbriqués : un sous-répertoire contenant son propre fichier __init__.py devient un sous-paquet.
mypackage/
__init__.py
network/
__init__.py
http.pyImportations relatives
À l’intérieur d’un paquet, utilisez des importations relatives avec un point initial pour faire référence aux modules voisins sans coder en dur le nom du paquet.
# mypackage/network/http.py
from ..utils import helper # two levels upImportations absolues et relatives
Les importations absolues sont sans ambiguïté et sont à privilégier. Les importations relatives sont utiles dans les grands paquets pour éviter les noms trop longs.
# Absolute
from mypackage.utils import helper
# Relative (inside mypackage)
from .utils import helper__all__ dans __init__.py
Définissez __all__ pour contrôler ce que from package import * exporte.
# mypackage/__init__.py
__all__ = ['helper', 'add']
from .utils import helper
from .math_helpers import addPaquets d’espace de noms (PEP 420)
Python 3.3 et les versions ultérieures prennent en charge les paquets d’espace de noms, c’est-à-dire des répertoires sans __init__.py. Ils sont utiles pour répartir un paquet entre plusieurs répertoires.
# No __init__.py needed
# Just have the directory and import normally
import myns.moduleInitialisation de __init__ du paquet
Utilisez __init__.py pour définir des constantes au niveau du paquet, configurer la journalisation ou charger à la demande des sous-modules volumineux.
# mypackage/__init__.py
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
VERSION = '1.0.0'Distribuer des paquets
Ajoutez un fichier pyproject.toml ou setup.py pour rendre votre paquet installable avec pip.
# pyproject.toml excerpt
[project]
name = "mypackage"
version = "1.0.0"
# Install locally
# pip install -e .Inspecter les attributs d’un paquet
Utilisez __file__, __path__ et __name__ pour examiner les métadonnées du paquet lors de l’exécution.
import mypackage
print(mypackage.__file__) # path to __init__.py
print(mypackage.__path__) # list of directory paths
print(mypackage.__name__) # 'mypackage'Vérification rapide
Quel fichier transforme un répertoire en paquet Python ?
Récapitulatif
Les paquets organisent les modules en répertoires à l’aide de __init__.py. Utilisez les importations absolues pour plus de clarté, les importations relatives à l’intérieur d’un paquet et __all__ pour contrôler les interfaces de programmation publiques.
Questions Fréquemment Posées
La leçon « Packages et __init__.py » est-elle gratuite ?
Oui — le texte complet de « Packages et __init__.py » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Packages et __init__.py » ?
Organisez vos modules en packages avec une structure de répertoires adaptée. Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Python Academy ?
Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Packages et __init__.py » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?
Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Créer et importer des modules
- La bibliothèque standard Python
- Packages et __init__.py
- Installer des packages avec pip