Курс Python → Декоратор @override

Python 3.12 представляет новую возможность — перезапись декоратора. До этого момента, если у нас был класс Base с методом get_color(), и мы хотели переопределить этот метод в наследном классе GoodChild, нам приходилось явно указывать, что мы переопределяем метод родительского класса. Теперь же мы можем использовать новый декоратор @override, который делает этот процесс намного проще и более понятным.

Декоратор @override позволяет явно указать, что метод в наследном классе переопределяет метод родительского класса. Это делает код более ясным и понятным для других разработчиков, которые могут работать с вашим кодом. Также это помогает избежать ошибок и недочетов при переопределении методов.


class Base:
    def get_color(self):
        return "red"

class GoodChild(Base):
    @override
    def get_color(self):
        return "blue"

В приведенном примере мы видим, что класс GoodChild переопределяет метод get_color() класса Base. Благодаря декоратору @override мы явно указываем, что этот метод переопределен, что делает код более читаемым и понятным. Такой подход помогает избежать ошибок при работе с наследуемыми классами и улучшает общую структуру программы.

Использование декоратора @override в Python 3.12 становится хорошей практикой при работе с классами и наследованием. Этот декоратор упрощает процесс переопределения методов родительских классов в наследуемых классах и делает код более понятным и поддерживаемым.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Оптимизация памяти с __slots__
  2. Возвращение нескольких значений через кортеж или класс
  3. Работа с файлами в Python
  4. Счетчик ссылок в Python
  5. Оценка точности модели
  6. None в Python: использование и особенности
  7. Работа с датой и временем в Python
  8. Инверсия списков и строк в Python
  9. Логические значения в Python
  10. Многопоточность в Python
  11. Блок try-except-else
  12. Деление в Python
  13. %pinfo: получение информации об объекте
  14. Bootle — простой веб-фреймворк
  15. Измерение времени выполнения кода
  16. Преобразование чисел в Python
  17. Функции range() в Python
  18. Обход элементов в Python
  19. Асинхронное выполнение задач в процессах
  20. Функция pow() — возвести число в степень
  21. Модуль array: создание и использование массивов
  22. Логический оператор «and» в Python
  23. Асинхронный код в Python
  24. Конвертация коллекций в Python
  25. Использование *args
  26. Проверка типов с использованием isinstance
  27. Вывод сложных структур данных с помощью pprint
  28. Переворот строки с использованием цикла
  29. Модуль pprint: улучшение вывода данных
  30. Docstring в Python
  31. Вызов функций по строке в Python.
  32. Создание панели меню Tkinter
  33. Открытие, чтение и закрытие файла
  34. Создание namedtuple списком полей
  35. Особенности запятых в Python
  36. Переопределение метода xor в Python
  37. Оператор «not» в Python
  38. Сравнение def и lambda в Python
  39. Контроль точности вывода чисел
  40. Работа с NumPy.linalg
  41. Операторы += в Python
  42. Создание тестовых данных с Faker
  43. Функции в Python
  44. Декораторы в Python
  45. Получение атрибутов и методов класса
  46. Генераторы в Python
  47. Определение объема памяти объекта
  48. Проверка памяти объекта

Marketello читают маркетологи из крутых компаний