Введение в обобщённые классы в ООП в Python
Иногда один и тот же класс должен работать с разными типами данных: числом, строкой, объектом пользователя. Писать отдельный класс под каждый тип неудобно.
В Python 3.14 класс можно сделать обобщённым: в заголовке указывают параметр типа в квадратных скобках, а внутри класса используют это имя вместо конкретного типа.
Давайте сделаем класс Box
с параметром T и полем
value типа T:
class Box[T]:
value: T
def __init__(self, value: T):
self.value = value
Создадим коробку со строкой и выведем содержимое:
box = Box('john')
print(box.value) # выведет 'john'
Буква T здесь не магическая:
это имя параметра типа, которое
подставится при создании объекта
конкретным типом данных.