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

Тип текущего класса в аннотации в ООП в Python

Метод может возвращать тот же объект, чтобы его сразу вызывали дальше цепочкой. Тогда в аннотации возвращаемого значения удобно указать тип текущего класса.

Для этого импортируют Self из модуля typing и пишут -> Self после списка параметров. Так читателю ясно: метод вернет объект того же класса, на котором его вызвали.

Давайте сделаем методы, которые меняют данные и возвращают self:

from typing import Self class User: def __init__(self): self.__name = None self.__surn = None def set_name(self, name: str) -> Self: self.__name = name return self def set_surn(self, surn: str) -> Self: self.__surn = surn return self @property def name(self): return self.__name @property def surn(self): return self.__surn

Создадим объект и вызовем методы цепочкой:

user = User() user.set_name('john').set_surn('smit') print(user.name) print(user.surn)

Запись -> Self описывает возвращаемый тип для инструментов и людей. Python при вызове ее не проверяет.

Сделайте класс Employee с методами set_name и set_surname, которые можно вызывать цепочкой. Укажите возвращаемый тип Self.

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