signal 的回调函数, 须要两个参数:signum 和 frame

signum 的 type 是一个 int

frame 的 type 是什么呢?

frame 的 type 是 frame class

frame class 在哪里?是内建的

怎么 import 后加正文?无奈导入,然而 python 在 types 中提供了 FrameType 来给咱们做 typing hint

import signalimport osfrom loguru import loggerimport timefrom types import FrameTypedef shutdown(signum: int, frame: FrameType):    try:        logger.debug(signum)        logger.debug(type(signum))        logger.debug(frame)        logger.debug(type(frame))        logger.debug('没了')        assert isinstance(frame, FrameType)    finally:        exit(0)signal.signal(signal.SIGTERM, shutdown)signal.signal(signal.SIGINT, shutdown)while True:    time.sleep(1)

输入如下:

^C2022-09-24 13:20:33.687 | DEBUG    | __main__:shutdown:9 - 22022-09-24 13:20:33.687 | DEBUG    | __main__:shutdown:10 - <class 'int'>2022-09-24 13:20:33.687 | DEBUG    | __main__:shutdown:11 - <frame at 0x7f56f1111a40, file '/home/bot/Desktop/ideaboom/011.py', line 25, code <module>>2022-09-24 13:20:33.687 | DEBUG    | __main__:shutdown:12 - <class 'frame'>2022-09-24 13:20:33.688 | DEBUG    | __main__:shutdown:13 - 没了