4.4. Чему вы научились

В этой главе вы разобрались с приёмами, которые делают функции в Python ещё более гибким и выразительным инструментом. Узнали, как описывать алгоритмы через рекурсию, научились избегать избыточных вычислений с помощью кеширования и увидели, как декораторы позволяют добавлять к функциям дополнительное поведение — без изменения их кода. Кроме того, вы познакомились с генераторами и освоили технику «ленивых» вычислений, когда значения создаются только по мере необходимости.

Теперь вы умеете:

  • создавать рекурсивные функции и применять их для задач, где решение строится через обращение к самому себе;
  • отличать императивный и декларативный стиль программирования и понимать, какой из них лучше подходит в каждом конкретном случае;
  • использовать кеширование для ускорения работы рекурсий: как вручную через словарь, так и автоматически с помощью @lru_cache;
  • писать собственные декораторы и применять их для расширения функциональности других функций — универсально, через *args и **kwargs;
  • описывать функции-генераторы, использовать yield и работать с данными по частям, не загружая всю коллекцию в память.

Вы получили в руки мощные инструменты, которые позволяют писать компактный, выразительный и удобочитаемый код — особенно в тех случаях, когда функции должны быть максимально гибкими и повторно используемыми.

В следующей главе вас ждёт новый уровень организации кода — объектно-ориентированное программирование. Мы обсудим, как устроены классы и объекты в Python, зачем нужны инкапсуляция и наследование и как описывать сложные сущности и их поведение с помощью методов, полей и магических функций.

Перейти к следующей главе

Отмечайте параграфы как прочитанные чтобы видеть свой прогресс обучения

Вступайте в сообщество хендбука

Здесь можно найти единомышленников, экспертов и просто интересных собеседников. А ещё — получить помощь или поделиться знаниями.
Вступить
Сообщить об ошибке
Предыдущий параграф4.3. Рекурсия. Декораторы. Генераторы

Здесь мы разберём вопрос создания рекурсивных функций для реализации декларативного подхода при разработке программ. А заодно изучим синтаксис и примеры использования декораторов и генераторов.

Следующий параграф5.1. Объектная модель Python. Классы, поля и методы

В параграфе будем говорить о том, что такое классы и как устроен их синтаксис — а также о принципах инкапсуляции и полиморфизма.