Python Glossary English

Python 3.5+signalпонятие

signal.Handlers

обработчики

Перечисление IntEnum из двух особых обработчиков: SIG_DFL (реакция ОС по умолчанию) и SIG_IGN (игнорировать сигнал).

Синтаксис

signal.Handlers.SIG_DFL, signal.Handlers.SIG_IGN

Члены — целые числа 0 и 1, поэтому SIG_DFL ложно в if: проверка «if signal.getsignal(s):» перепутает «реакция по умолчанию» с «обработчика нет». Сравнивайте явно через == или is. SIG_IGN, установленный до exec, наследуется дочерним процессом — так «потерянный» Ctrl+C переходит в запущенную программу.

Примеры

import signal
print(list(signal.Handlers))  # → [<Handlers.SIG_DFL: 0>, <Handlers.SIG_IGN: 1>]
h = signal.getsignal(signal.SIGTERM)
print(bool(h), h is signal.SIG_DFL)  # → False True — ложно, но обработчик есть

См. также

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