Les bibliothèques et les cadres utilisent généralement le code d'initialisation en __init__.py
fichiers parfaitement se cacher interne de la structure et de fournir une interface uniforme pour l'utilisateur.
Prenons l'exemple de Django formes module. Diverses fonctions et de classes dans les formes module sont définis dans des fichiers différents en fonction de leur classification.
forms/
__init__.py
extras/
...
fields.py
forms.py
widgets.py
...
Maintenant, si vous créez un formulaire, il vous faut savoir dans quel fichier chaque fonction est définie et votre code pour créer un formulaire de contact devra ressembler à ceci (qui est incovenient et laid).
class CommentForm(forms.forms.Form):
name = forms.fields.CharField()
url = forms.fields.URLField()
comment = forms.fields.CharField(widget=forms.widgets.Textarea)
Au lieu de cela, dans Django, vous pouvez tout simplement se référer à différents widgets, les formulaires, les champs, etc. directement à partir des formes de l'espace de noms.
from django import forms
class CommentForm(forms.Form):
name = forms.CharField()
url = forms.URLField()
comment = forms.CharField(widget=forms.Textarea)
Comment est-ce possible? Pour rendre cela possible, Django ajoute la déclaration suivante à l' forms/__init__.py
le fichier d'importation, tous les widgets, les formulaires, les champs, etc. dans l' forms
d'espace de noms.
from widgets import *
from fields import *
from forms import *
from models import *
Comme vous pouvez le voir, cela simplifie la vie lors de la création des formes, parce que maintenant vous n'avez pas à vous soucier de, où chaque fonction/classe est définie et il suffit d'utiliser l'ensemble de ces directement à partir de forms
d'espace de noms. C'est juste un exemple, mais vous pouvez voir des exemples comme ceux-là dans d'autres frameworks et bibliothèques.