====== Modules, Packages, Import ======
Doc: [[https://docs.python.org/fr/3/reference/import.html]]
[[https://towardsdatascience.com/learn-python-modules-and-packages-in-5-minutes-bbdfbf16484e]]
[[https://stackoverflow.com/questions/8953844/import-module-from-subfolder]]
add __init__.py to every subfolder you are importing from
===== Exemple 1 =====
#/home/marc/test
├── # app
│ ├── # controllers
│ │ ├── # a.py
│ │ │
│ │ │ class ControllerA:
│ │ │ def hello(self):
│ │ │ print("Hello, I'm Controller A")
│ │ │
│ │ └── # b.py
│ │
│ │ class ControllerB:
│ │ def hello(self):
│ │ print("Hello, I'm Controller B")
│ │
│ ├── # main.py
│ │
│ │ from .controllers.a import ControllerA
│ │ from .controllers.b import ControllerB
│ │
│ │ class Application:
│ │ def __init__(self):
│ │ self.name = "Mauricette"
│ │
│ │ def show(self):
│ │ a = ControllerA()
│ │ a.hello()
│ │ b = ControllerB()
│ │ b.hello()
│ │
│ └── # __init__.py
│
│ from .main import Application
│
│ app = Application()
│
└── # run.py
from app import app
if __name__ == "__main__":
print(app.name)
app.show()