私はこの醜いブロックを置き換えようとしています:
import signal
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
signal.signal(signal.SIGQUIT, signal_handler)
signal.signal(signal.SIGILL, signal_handler)
signal.signal(signal.SIGPIPE, signal_handler)
これとともに:
import signal
for sig in (SIGINT, SIGTERM, SIGQUIT, SIGILL, SIGPIPE):
signal.signal(sig, signal_handler)
残念ながら、python は次のようにスローします。
File "./mysuperfile.py", line 107, in <module>
for sig in (SIGINT, SIGTERM, SIGQUIT, SIGILL, SIGPIPE):
NameError: name 'SIGINT' is not defined
私もやってみました
from signal import signal, SIGINT, SIGTERM, SIGQUIT, SIGILL, SIGPIPE
..しかし、これはスローします:
File "./mysuperfile.py", line 108, in <module>
signal.signal(sig, signal_handler)
AttributeError: 'builtin_function_or_method' object has no attribute 'signal'
質問: 正しい構文は何ですか?
ありがとうございました!