Курс Python → Делегирование в Python

Делегирование в Python — это механизм, позволяющий объекту передавать выполнение определенных задач другим объектам. В приведенном примере мы имеем класс, который описывает поведение файла и умеет преобразовывать данные из нижнего регистра в верхний. Для этого класса определен метод write(), который конвертирует строку из нижнего в верхний регистр перед вызовом другого метода. Однако сама операция делегирования осуществляется через объект self._out.

Давайте рассмотрим более подробно пример кода:


class Upcase:
    def __init__(self, out):
        self._out = out
    
    def write(self, data):
        self._out.write(data.upper())

В данном примере класс Upcase принимает объект out в качестве параметра при инициализации. Метод write() этого класса принимает данные в виде строки и передает их объекту out, преобразуя перед этим строку в верхний регистр с помощью метода upper().

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

Подобный подход к делегированию помогает разделить ответственности между объектами, делая код более модульным и понятным. Это позволяет упростить разработку и обслуживание программного обеспечения, а также повысить его гибкость и масштабируемость.

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

Автор урока

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

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

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

  1. Удаление дубликатов из списка с помощью dict.fromkeys
  2. Оператор in для Python
  3. Переопределение метода xor в Python
  4. Применение промокода в Много лосося
  5. Оператор in и not in в Python
  6. Форматирование строк с помощью f-строк
  7. Расширение информации об ошибке в Python
  8. Измерение потребления памяти при сортировке
  9. Установка виртуального окружения Python
  10. Хранение данных
  11. Создание коллекций из генератора
  12. Возвращение нескольких значений через кортеж или класс
  13. Управление контекстом с помощью декоратора contextmanager
  14. Цикл for в Python
  15. Подписка на @SelectelNews
  16. Работа с itertools
  17. Получение текущего времени в Python
  18. Передача параметров в Python
  19. Поиск уникальных элементов строкой в Python
  20. Хэш-функции и метод цепочек
  21. Работа с YAML в Python
  22. Форматирование кода на Python
  23. Форматирование вывода списков
  24. Срезы в Python
  25. Генераторы словарей и множеств
  26. Переопределение метода __eq__
  27. Вывод с переменной через запятую
  28. Функции с необязательными аргументами
  29. Функция reversed() в Python
  30. Импорт классов из другого файла
  31. Работа с *args и **kwargs в Python
  32. Управление экспортом элементов
  33. Сортировка в Python
  34. Анонимные функции в Python
  35. Списки в Python: синтаксис представления
  36. Метод count в Python: почему count(», ») возвращает 4?
  37. Генерация тестовых данных с factory_boy
  38. Операторы присваивания в Python
  39. Обновление данных через PUT запрос
  40. Генераторы по генератору
  41. Работа с контекстным менеджером Pool
  42. Поиск с помощью регулярных выражений
  43. Управление контекстом выполнения кода
  44. Управление браузером с Selenium

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