[Python] Chargement de modules personnalisés à plusieurs niveaux

supposition

Une note sur la façon d'écrire «__init __. Py» lorsque la structure est la suivante.


root/  ├ __init__.py  ├ dir_a/  │  ├ __init__.py │ └ test_a.py (func_a est défini)  └ dir_b/     ├ __init__.pytest_b.py (func_b est défini)


Après avoir fait ʻimport root, je veux pouvoir l'appeler avec root.func_a`. Puisqu'il y avait une telle chose, je vais m'en rendre compte.

init directement sous la racine

Pour root / __ init __. Py

root/__init__.py


import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from root.dir_a import *
from root.dir_b import *

dir_a init

Pour root / dir_a / __ init __. Py

root/dir_a/__init__.py


from dir_a.test_a import *

init de dir_b

Faites la même chose pour root / dir_b / __ init __. Py que pour root / dir_a / __ init __. Py

root/dir_b/__init__.py


from dir_b.test_b import *

Résumé

Tout ce que vous faites est d'appeler en séquence. Le col est gênant.

Recommended Posts

[Python] Chargement de modules personnalisés à plusieurs niveaux
Liste des modules python
Tri par classe Python
Paquets et modules Python
Chargement dynamique des modules
compilateur x86 réalisé avec python
Apprenez à connaître les packages et les modules Python
Accélérer le chargement des images Python
A propos des modules Python Primer et des expressions conditionnelles
Cours de base Python (14 modules et packages)
RPC complété avec des modules Python 3 standard
Analyse de régression logistique Self-made avec python
Vérifier les modules installés à partir du script Python