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

Ограничение параметра типа в ООП в Python

Иногда параметр типа должен быть не любым, а только определённым классом или его потомком. После имени параметра ставят двоеточие и базовый тип.

Пусть есть класс User:

class User: def __init__(self, name): self.name = name

Сделаем коробку, которая принимает только User или класс-наследник:

class Box[T: User]: def __init__(self, value: T): self.value = value

Положим в коробку объект пользователя:

box = Box(User('john')) print(box.value.name) # выведет 'john'

Запись T: User говорит проверке типов: подставлять можно только User и его подклассы, но не число и не строку.

Сделайте класс Employee, наследующий User. Сделайте обобщённый StaffBox[T: User] и сохраните в нём работника.

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