__init__.py
1. Основное назначение __init__.py
__init__.pyМодуль пакета
Любая папка, содержащая файл
__init__.py, считается пакетом.Без него Python не будет воспринимать папку как пакет (в старых версиях Python до 3.3 это было строго обязательно; сейчас опционально, но всё равно часто используется).
Инициализация пакета
В этом файле можно писать код, который должен выполняться при импорте пакета.
Можно импортировать подмодули, задавать переменные или константы пакета.
2. Примеры использования
Пример 1: Создание пакета
Структура проекта:
my_package/
__init__.py
module1.py
module2.pyСодержимое __init__.py может быть пустым:
# my_package/__init__.pyИмпорт пакета:
import my_package.module1Пример 2: Инициализация при импорте
Можно импортировать подмодули прямо в __init__.py, чтобы их было удобно использовать:
# my_package/__init__.py
from .module1 import func1
from .module2 import func2Теперь:
from my_package import func1, func2
func1()Пример 3: Код и переменные пакета
# my_package/__init__.py
version = "1.0"
print("Пакет my_package загружен")Импорт:
import my_package
print(my_package.version) # 1.0При этом при импорте выполнится
print("Пакет my_package загружен").
3. Применение в автотестах
Структура тестов
tests/
__init__.py
test_login.py
test_registration.pyПозволяет:
Импортировать тестовые модули как пакет:
from tests import test_login.Настроить глобальные фикстуры или константы пакета в
__init__.py.
Page Object Model
pages/
__init__.py
login_page.py
home_page.pyМожно импортировать все страницы сразу:
from pages import login_page, home_page💡 Вывод:
__init__.pyделает папку пакетом Python, позволяет инициализировать пакет, импортировать подмодули и задавать переменные.Особенно полезен для структурирования автотестов, Page Object Model и повторного использования кода.
Last updated
Was this helpful?