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

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

Python Лабораторна 24: Структуровані обʼєкти через dataclass

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

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

Тема: Dataclass для простих моделей

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

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



Krok 1. Створити файл src/app/data24.py.

Komandi: cd ~/python_lab1/src; touch app/data24.py



Krok 2. Додати простий dataclass User.

Komanda: printf "from dataclasses import dataclass

@dataclass
class User:
    id: int
    name: str
    is_active: bool = True

if __name__ == "__main__":
    u = User(id=1, name="Taras")
    print(u)
" > app/data24.py



Krok 3. Запустити модуль і подивитися вивід.

Komanda: export PYTHONPATH=$(pwd); python app/data24.py



Krok 4. Додати метод у клас User який повертає рядок з повним імʼям.

Poyasnennya: dataclass не забороняє прописувати методи.



Krok 5. Додати поле balances як словник з типами у анотаціях.

Poyasnennya: зварни увагу на необхідність default_factory для змінних типів.



Krok 6. Продемонструвати автоматичні методи eq і repr на прикладах порівняння обʼєктів.



Krok 7. Додати параметр frozen True щоб зробити обʼєкти незмінними.

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



Krok 8. Занотувати різницю між dataclass і pydantic моделями з попередньої лабораторної.



Krok 9. Продумати як використовувати dataclass для налаштувань і конфігів.



Krok 10. Mini zvit.

Zavdannya: опиши коли звичайний клас все ще потрібен навіть якщо є dataclass.