Подавляющее большинство __init__.py
файлов, которые я пишу, пустые, потому что многим пакетам нечего инициализировать.
Один пример, в котором мне может потребоваться инициализация, - это когда во время загрузки пакета я хочу раз и навсегда прочитать кучу данных (скажем, из файлов, БД или Интернета) - в этом случае это намного приятнее поместить это чтение в приватную функцию в __init__.py
пакета, а не иметь отдельный "модуль инициализации" и избыточно импортировать этот модуль из каждого реального модуля в пакете (бесполезно повторяющийся и ошибочный склонность: это, очевидно, тот случай, когда мы полагаемся на гарантию языка, что пакет __init__.py
загружен один раз перед тем, как какой-либо модуль в пакете, очевидно, гораздо более Pythonic!).
Что касается других конкретных и авторитетных выражений мнения, посмотрите на различные подходы, применяемые в различных пакетах, входящих в стандартную библиотеку Python.