Метод connected_to
Метод connected_to применяется к объекту сигнала
NamedSignal и возвращает контекстный менеджер.
Он используется для временного подключения функции-получателя
к сигналу: получатель автоматически отключается при выходе
из блока with. Первым параметром передаётся функция-получатель,
которая будет вызвана при отправке сигнала.
Синтаксис
with signal.connected_to(receiver):
...
Пример
Давайте создадим сигнал и временно подключим к нему
функцию-получатель с помощью connected_to:
from flask import Flask
from flask.signals import Namespace
app = Flask(__name__)
ns = Namespace()
my_signal = ns.signal('my-signal')
def receiver(sender, **extra):
print('signal received')
with my_signal.connected_to(receiver):
my_signal.send(app)
Результат выполнения кода:
"signal received"
Пример
Давайте проверим, что после выхода из блока with
получатель отключается автоматически:
from flask import Flask
from flask.signals import Namespace
app = Flask(__name__)
ns = Namespace()
my_signal = ns.signal('my-signal')
def receiver(sender, **extra):
print('signal received')
with my_signal.connected_to(receiver):
my_signal.send(app)
my_signal.send(app)
Результат выполнения кода:
"signal received"
Смотрите также
-
класс
NamedSignal,
который представляет именованный сигнал -
метод
connect,
который подключает получателя к сигналу -
метод
disconnect,
который отключает получателя от сигнала -
метод
send,
который отправляет сигнал всем получателям