Je ne comprends pas les scénarios d'utilisation ou les objectifs de conception de python. __init__.py
dans mes projets.
Supposons que j'ai un répertoire 'modèle' (référencé comme un paquet) dans lequel j'ai conservé les fichiers suivants.
__init__.py
meta.py
solrmodel.py
mongomodel.py
samodel.py
J'ai trouvé deux façons d'utiliser __init__.py
.
-
Je dispose d'une définition commune qui doit être utilisée dans
solrmodel.py
,mongomodel.py
,samodel.py
. Dans ce cas, puis-je utiliser__init__.py
comme une définition de base/commune pour toutes les classes *model.py ? Cela signifie que je dois importermodel/__init__.py
. -
Ou, le
__init__.py
a importé les définitions de solrmodel.py, mongomodel.py, samodel.py dans son propre système et permet d'importer facilement des classes ou des fonctions comme ceci :# file: __init__.py from mongomodel import * from solrmodel import * from samodel import *
(Je suis conscient que
import *
n'est pas recommandé et je l'ai juste utilisé comme une convention)
Je n'arrivais pas à me décider entre les deux scénarios ci-dessus. Existe-t-il d'autres scénarios d'utilisation pour __init__.py
et pouvez-vous en expliquer l'usage ?
Documentation Python dit l'initialisation des paquets, mais je n'ai pas pu comprendre ce qu'il y a dans un paquet à initialiser.