Что такое __init__.py для Python?
Python обеспечивает очень простую систему упаковки, которая представляет собой просто расширение механизма модуля в каталог. Любая директория с файлом __init__.py считается пакетом Python. Различные модули в пакете импортируются так же, как и простые модули, но со специальным поведением для файла __init__.py, который используется для сбора всех определений пакета.
На следующем рисунке показана структура стандартного модуля Python.
Поскольку вы можете видеть структуру стандартного модуля Python из приведенного выше изображения, включение файла __init__.py в каталог указывает интерпретатору Python, что каталог должен рассматриваться как пакет Python. Когда модуль импортируется в скрипт, файл __init__.py этого модуля будет загружен и выполнен. Это позволяет вам легко группировать большие папки из множества отдельных скриптов python в один импортируемый модуль.
Если у вас есть файлы:
mysock/socket/__init__.py mysock/socket/chat.py
и mysock находится на вашем пути Python, вы можете импортировать код в chat.py как
import socket.chat
или
from socket import chat
Если вы удалите файл __init__.py, Python больше не будет искать подмодули внутри этого каталога, поэтому попытки импортировать модуль не удастся. Если оставить файл __init__.py пустым, считается нормальным и даже хорошей практикой, если модулю и подпакетам пакета не нужно делиться каким-либо кодом.