Какая функция используется для вызова объекта класса в ООП на Python?
Существует функция init, которая вызывается при инициализации объекта класса
class NewClass:
def __init__(self):
Действия, которые выполняются при инициализации объекта
У меня вопрос: существует ли функция, которая вызывается при вызове объекта? Например, что я имею ввиду:
class NewClass:
def __названиеискомойфункции__(self):
print("Функция была вызвана")
затем сделаем так:
myobj1 = NewClass()
n1 = myobj1
n2 = myobj1
n3 = myobj1
Предполагаемый вывод:
Функция была вызвана
Функция была вызвана
Функция была вызвана
Ответы (1 шт):
Автор решения: Gleb Kublahanov
→ Ссылка
В Python есть специальный метод __call__()
, который вызывается при вызове объекта как функции. Вот пример:
class NewClass:
def __call__(self):
print("Функция была вызвана")
myobj1 = NewClass()
n1 = myobj1() # Вызывается метод __call__()
n2 = myobj1() # Вызывается метод __call__()
n3 = myobj1() # Вызывается метод __call__()
В этом примере метод __call__()
будет вызываться при каждом обращении к объекту myobj1 как к функции, что приведет к ожидаемому выводу:
Функция была вызвана
Функция была вызвана
Функция была вызвана