2011-10-18 3 views
0

En python, un répertoire contenant un ou plusieurs modules a parfois __init__.py, de sorte que le répertoire peut être traité comme un python package, est-ce correct? Quelles différences fait le __init__? (Aussi une autre Q, est un module python juste un python de code fichier lié et peut-être indépendant (à d'autres fichiers) ensemble de classes, fonctions et variables?)Quelles sont les différences entre `__init__` dans un répertoire?

+1

Vous devriez lire le [tutorial] (http://docs.python.org/tutorial/modules.html). –

Répondre

2

En outre, le contenu de __init__.py devient le contenu de l'emballage lors d'un traitement en tant que module, à savoir le contenu de somepackage/__init__.py se trouvent dans dir(somepackage) lorsque vous import somepackage.

Les modules eux-mêmes peuvent être du code Python, specially-crafted C code, ou ils peuvent être an artificial construct injectés par l'exécutable qui charge la machine virtuelle Python.

4

Voici un explanation pourquoi __init__.py est nécessaire:

Les fichiers __init__.py sont requis pour que Python traite les répertoires comme contenant des paquets; Ceci est fait pour empêcher les répertoires avec un nom commun, tel que string, de masquer involontairement des modules valides qui surviennent plus tard dans le chemin de recherche du module. Dans le cas le plus simple, __init__.py peut simplement être un fichier vide, mais il peut également exécuter le code d'initialisation du package ou définir la variable __all__, décrite plus tard.

Comme je viens de le recommander à un autre poster, le tutorial on modules est très instructif.

Questions connexes