Comment puis-je écrire un bon/bon package __init__.py fichiers

Mon colis a la structure suivante:

mobilescouter/
    __init__.py #1
    mapper/
        __init__.py  #2
        lxml/
            __init__.py #3
            vehiclemapper.py
            vehiclefeaturemapper.py
            vehiclefeaturesetmapper.py
        ...
        basemapper.py
   vehicle/
        __init__.py #4
        vehicle.py
        vehiclefeature.py
        vehiclefeaturemapper.py
   ...

Je ne suis pas sûr de savoir comment les __init__.py fichiers doit être écrit correctement.
Le __init__.py #1 ressemble:

__all__ = ['mapper', 'vehicle']
import mapper
import vehicle

Mais comment par exemple __init__.py #2 ressembler? Le mien est:

__all__ = ['basemapper', 'lxml']
from basemaper import *
import lxml

Quand doit-être __all__ utilisé?

  • Sachez cependant que l'utilisation d'importation * dans le code est généralement très mauvaise pratique et doit être évitée si possible. Il y a très peu de bonnes cas d'utilisation pour le présent, mais ils sont très rares.
  • PSA: si vous êtes intéressé à apprendre comment écrire un bon paquets d'espace de nom (le nouveau type de paquet), voyez l'exemple de paquet: github.com/pypa/sample-namespace-packages
InformationsquelleAutor Marten Bauer | 2009-12-22