Python Glossary English

все Python 3signalфункция

signal.getsignal()

обработчики

Возвращает текущий обработчик сигнала: функцию, SIG_IGN, SIG_DFL или None, если обработчик ставили не из Python.

Синтаксис

signal.getsignal(signalnum)

Для SIGINT ответ по умолчанию — не SIG_DFL, а signal.default_int_handler: именно он превращает Ctrl+C в KeyboardInterrupt. None — не «обработчика нет», а «поставлен из C-кода», и передать None обратно в signal.signal нельзя — TypeError. Поэтому для временной подмены надёжнее сохранить то, что вернул сам signal.signal, а getsignal оставить для проверки.

Примеры

import signal
print(signal.getsignal(signal.SIGINT) is signal.default_int_handler)  # → True
print(signal.getsignal(signal.SIGTERM) == signal.SIG_DFL)  # → True
try:
    signal.signal(signal.SIGTERM, None)
except TypeError:
    print('None обратно не поставить')  # → None обратно не поставить

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности