__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?