Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpMgCl 94 of 174 menu
◀ ▶

Метод __call__ в ООП в Python

Специальный метод __call__ вызывается, когда объект используют как функцию: после переменной с объектом ставят круглые скобки. Так объект может хранить состояние и при этом выполнять действие по вызову.

Пусть у нас есть класс Multiplier, который хранит число-множитель:

class Multiplier: def __init__(self, factor): self.factor = factor

Добавим метод __call__, чтобы умножать переданное число на множитель:

class Multiplier: def __init__(self, factor): self.factor = factor def __call__(self, value): return value * self.factor

Создадим объект и вызовем его как функцию:

double = Multiplier(2) print(double(5)) # выведет 10

Сделайте класс Greeter, который в конструкторе запоминает строку приветствия. Реализуйте __call__: при вызове объекта возвращайте приветствие и переданное имя.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить