Метод receivers_for
Метод receivers_for применяется к объекту сигнала
NamedSignal. Первым параметром передаётся
отправитель (sender), для которого нужно получить список
подключённых получателей. Если параметр не указан или равен
None, метод возвращает всех получателей сигнала.
Результатом работы является итерируемый объект с функциями,
зарегистрированными через connect.
Синтаксис
signal.receivers_for(sender)
Пример
Давайте создадим сигнал и подключим к нему две функции, после чего получим список получателей для конкретного отправителя:
from flask import Flask
from flask.signals import Namespace
app = Flask(__name__)
ns = Namespace()
my_signal = ns.signal('my-signal')
def handler_one(sender):
return 'handler one'
def handler_two(sender):
return 'handler two'
my_signal.connect(handler_one, app)
my_signal.connect(handler_two, app)
res = list(my_signal.receivers_for(app))
print(res)
Результат выполнения кода:
[<function handler_one at 0x...>, <function handler_two at 0x...>]
Пример
Если в метод receivers_for передать отправителя,
к которому не подключены получатели, будет возвращён
пустой список:
from flask import Flask
from flask.signals import Namespace
app = Flask(__name__)
other = Flask('other')
ns = Namespace()
my_signal = ns.signal('my-signal')
def handler(sender):
return 'handled'
my_signal.connect(handler, app)
res = list(my_signal.receivers_for(other))
print(res)
Результат выполнения кода:
[]
Пример
Давайте вызовем всех получателей, найденных через
receivers_for, с помощью метода send:
from flask import Flask
from flask.signals import Namespace
app = Flask(__name__)
ns = Namespace()
my_signal = ns.signal('my-signal')
def handler(sender):
return 'abcde'
my_signal.connect(handler, app)
for receiver in my_signal.receivers_for(app):
res = receiver(app)
print(res)
Результат выполнения кода:
"abcde"
Смотрите также
-
класс
NamedSignal,
который представляет собой именованный сигнал -
метод
has_receivers_for,
который проверяет наличие получателей у сигнала -
метод
send,
который отправляет сигнал всем получателям -
метод
connect,
который подключает функцию к сигналу