Абстрактный класс – класс, содержащий один и более абстрактных методов. Абстрактный метод – метод, который объявлен, но не реализован. Абстрактный класс не может быть инстанциирован (создан его экземпляр). Нужно наследовать этот класс и реализовать (переопределить) все абстрактные методы, и только после этого можно создавать экземпляры такого наследника. В Python нет синтаксической поддержки абстрактных классов, но…
Метка: декоратор
Класс-декоратор и декоратор класса
Эти две темы не так близки, как кажется, но я не мог разнести их в разные посты, лишая себя такого заголовка. Узнаем, как из класса сделать декоратор, и как написать декоратор для класса. Код примеров доступен в GIST под каждым из разделов. Класс как декоратор Если у класс реализовать магический метод __call__ , то экземпляр…
Декораторы с параметрами
Как я сказал ранее, декоратор – по сути функция с аргументом – другой функцией, но как добавить туда еще аргументы, подобно коду ниже? Справа от знака собачки (@) в синтаксисе декоратора должен стоять какой-то вызываемый объект (т.е. тот, который можно вызвать как функцию), короче нечто foo, которое будет вызвано, как foo(f) в процессе декорации, где…
Декораторы в Python
Вероятно, почти каждый разработчик на Python сталкивался с декораторами, видя конструкцию с со знаком @: Разберемся, что такое декоратор, и как он работает. Этот вопрос часто спрашивают на собеседованиях. Декоратор – это функция, которая принимает как аргумент другую функцию*. Цель декоратора – расширить функциональность переданной ему функции без непосредственного изменения кода самой функции. Вот и…