Параметр типа у метода в ООП в Python
Параметр типа можно объявить не только у класса, но и у отдельного метода. Имя пишут в квадратных скобках сразу после имени метода.
Добавим в обычный класс метод
first, который возвращает
переданный аргумент того же типа:
class Holder:
def first[T](self, item: T) -> T:
return item
Проверим работу метода:
holder = Holder()
print(holder.first(10)) # выведет 10
print(holder.first('john')) # выведет 'john'
Тот же приём можно использовать
внутри обобщённого класса Box:
class Box[T]:
def __init__(self, value: T):
self.value = value
def wrap[U](self, extra: U) -> tuple[T, U]:
return (self.value, extra)
Метод класса получает свой параметр
U, независимый от T
у класса.
Сделайте класс PairHolder
с методом, который параметром типа
принимает два значения одного типа
и возвращает их кортеж.