Файли __init__.py можуть бути порожніми: вам не потрібно додавати код у файл __init__.py, якщо це не потрібно. Порожній файл __init__.py все ще потрібен, щоб позначити каталог як пакет, але він не повинен містити код.24 березня 2023 р.
Це означає, що __init__.py тепер часто необов’язковий, але все одно корисно структурувати ваш код ініціалізації та визначити, як мають працювати такі оператори, як from mypackage import *.
У Python використовується файл __init__.py щоб позначити каталог як пакет Python. Він використовується для ініціалізації пакета під час його імпорту. Файл __init__.py може містити код, який буде виконано під час імпорту пакета, а також визначення функцій і призначення змінних.
__init__.py дозволяє організовувати ваш код у модульні блоки, роблячи все надзвичайно керованим і багаторазовим. Уявіть це як план вашого пакета — ви можете визначати загальні функції, змінні або навіть імпортувати інші модулі в __init__.py, створюючи основу для функціональності ваших пакетів.
Ви можете використовувати пакети простору імен (PEP420) для своєї програми, але pytest все одно виконуватиме тестове виявлення імен пакетів на основі наявності файлів __init__.py. Якщо ви використовуєте один із двох рекомендованих вище макетів файлової системи, але залишаєте подалі файли __init__.py у своїх каталогах, це має працювати.
Але в Python, не обов'язково, щоб конструктор батьківського класу завжди викликався першим. Порядок, у якому викликається метод __init__ для батьківського або дочірнього класу, можна змінити. Це можна просто зробити, викликавши конструктор батьківського класу після тіла конструктора дочірнього класу.