← До фільтрів та технологій

← До списку лабораторних по Python

Python Лабораторна 3: Організація коду у пакетах

Технологія: Python

Номер лабораторної: 3 · Рівень: middle

Тема: Структура пакету і відносні імпорти

Повний опис / сценарій лабораторної:

Meta: навчитися структурувати код як пакет з модулями і розуміти як працюють імпорти.



Krok 1. Перейти у каталог src попереднього проєкту.

Komanda: cd ~/python_lab1/src



Krok 2. Додати підпакет services.

Komandi: mkdir -p app/services; touch app/services/__init__.py; touch app/services/math_service.py



Krok 3. Записати просту функцію у math_service.py.

Komanda: echo "def add(a, b):" > app/services/math_service.py; echo "    return a + b" >> app/services/math_service.py



Krok 4. Оновити main.py щоб використовувати новий модуль.

Komanda: printf "from app.services.math_service import add

def main():
    result = add(2, 3)
    print(f"Result {result}")
" > app/main.py

Poyasnennya: використовується абсолютний імпорт від кореня пакета.



Krok 5. Налаштувати PYTHONPATH якщо ще не налаштовано.

Komanda: export PYTHONPATH=$(pwd)



Krok 6. Запустити main.

Komanda: python -c "from app.main import main; main()"

Poyasnennya: перевір що імпорти працюють коректно.



Krok 7. Додати новий модуль util.py з простою функцією.

Komanda: echo "def debug(msg):" > app/util.py; echo "    print(f"[DEBUG] {msg}")" >> app/util.py



Krok 8. Використати відносний імпорт всередині пакета.

Komanda: printf "from .util import debug
from .services.math_service import add

def main():
    debug("start")
    print(add(5, 7))
" > app/main.py

Poyasnennya: крапка означає відносний імпорт у межах пакета.



Krok 9. Перезапустити main і переконатися що код працює.

Komanda: python -c "from app.main import main; main()"



Krok 10. Mini zvit.

Zavdannya: опиши коли варто використовувати відносні імпорти а коли абсолютні.