РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
553 of 643 menu

Метод 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,
    который подключает функцию к сигналу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить