Maison >développement back-end >Tutoriel Python >`__init__.py` est-il toujours requis pour les packages Python dans la version 3.3 ?
Est-il plus requis dans Python 3.3 ? Fournir le fichier __init__.py pour le package ?
Introduction : Le rôle du fichier __init__.py
En Python, le rôle du fichier __init__.py est d'identifier un directory sous forme de package. Permet d'organiser les différents répertoires et modules de ce répertoire dans un espace de noms. Dans Python 2.7 et versions antérieures, le fichier __init__.py est requis pour créer un package.
Fichier __init__.py dans Python 3.3
Dans Python 3.3, le concept de packages d'espace de noms implicites a été introduit, ce qui le rend possible même sans fichiers et packages __init__.py peuvent également être créés. Cela signifie qu'un répertoire peut désormais être désigné comme package d'espace de noms et que le contenu de ce répertoire peut être modularisé.
Cas d'utilisation des packages d'espace de noms
Le cas d'utilisation le plus courant de cette fonctionnalité de package d'espace de noms implicite consiste à permettre à plusieurs bibliothèques de différents emplacements de contribuer des sous-packages à un parent emballer . Par exemple, supposons qu'il existe deux bibliothèques google_pubsub et google_storage, qui fournissent la structure suivante :
google_pubsub/ # 包 1 google/ # 命名空间包(没有 __init__.py) cloud/ # 命名空间包(没有 __init__.py) pubsub/ # 常规包(有 __init__.py) __init__.py # 必需的,用于创建常规包 foo.py google_storage/ # 包 2 google/ # 命名空间包(没有 __init__.py) cloud/ # 命名空间包(没有 __init__.py) storage/ # 常规包(有 __init__.py) __init__.py # 必需的,用于创建常规包 bar.py
Dans ce cas, les répertoires google/ et google/cloud/ doivent être des packages d'espace de noms, de sorte que google_pubsub et The Le package google_storage est considéré comme un sous-package du même package parent.
Conclusion :
Il existe les deux types de packages Python suivants :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!