все 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Сообщить о неточности