На этом шаге мы определимся с дальнейшим изложением.
Одна из самых важных мантр разработки программного обеспечения - "не повторяйтесь" (DRY, dont' repeat yourself). Поэтому каждый раз, когда вы сталкиваетесь с кодом с большим количеством повторений (или копипастом кусков кода), поиск более элегантного решения очень часто окупает себя. В Python такие задачи нередко решаются путем обращения к метапрограммированию. Если вкратце, то метапрограммирование заключается в создании функций и классов, чьей главной задачей является управление кодом (то есть модификация, генерация или обертывание существующего кода). Главные возможности - декораторы функций, декораторы классов и метаклассы. Однако в картину нужно добавить и другие полезные темы, включая сигнатуры объектов, выполнение кода с помощью exec() и интроспекцию функций и классов. Главная цель последующих шагов - исследовать различные приемы метапрограммирования и дать примеры того, как их можно использовать для подстройки поведения Python под ваши нужды.
На следующем шаге мы рассмотрим создание обертки для функции.