Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpDcIh 126 of 174 menu
◀ ▶

Наследование датаклассов в ООП в Python

Датакласс может наследовать от другого датакласса. Потомок добавляет свои поля, а декоратор @dataclass нужен на каждом классе в цепочке.

Давайте сделаем родителя и потомка:

from dataclasses import dataclass @dataclass class User: name: str age: int @dataclass class Employee(User): salary: int

Создадим объект сотрудника:

emp = Employee('john', 25, 1000) print(emp)

Правило порядка полей действует и при наследовании: поле без значения по умолчанию не может идти после поля со значением у родителя.

Такой код вызовет ошибку:

@dataclass class User: name: str = 'john' @dataclass class Employee(User): salary: int # ошибка порядка полей

Правильно сначала объявить обязательные поля, а значения по умолчанию ставить в конце:

@dataclass class User: name: str age: int = 25 @dataclass class Employee(User): salary: int department: str = 'it'

Сделайте датакласс User с полями name и age.

Сделайте датакласс Employee, наследующий от User, с полем salary.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить