You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于signal.signal处理器的类型提示设置及导入疑问

为signal.signal的处理器添加类型提示及导入说明

所需导入内容

你需要导入以下模块/类型来实现完整的类型提示:

  • signal:核心信号处理模块
  • types.FrameType:用于标注栈帧参数的类型
  • typing.Callable:用于定义处理器函数的类型签名(Python 3.9+也可使用collections.abc.Callable)

修正后的代码及类型提示

下面是补全类型提示并修正语法错误后的代码:

import signal
from types import FrameType
from typing import Callable

class SomeClass:
    # 定义处理器的类型别名,方便复用
    SignalHandler = Callable[[int, FrameType | None], None]

    def handler(self, signum: int, frame: FrameType | None) -> None:
        pass

    def __init__(self) -> None:
        signal.signal(signal.SIGINT, self.handler)

关键说明

  • signum参数:确实是int类型,对应操作系统定义的信号编号(比如signal.SIGINT的值为2)
  • frame参数:类型为FrameType | None,代表触发信号时的栈帧,部分场景下可能为None
  • 处理器返回值:必须是None,信号处理器不允许返回其他值
  • 代码修正了原代码的两处语法错误:__init__方法缺少self参数,signal.signal语句末尾多了冒号

内容的提问来源于stack exchange,提问作者HumbleProgrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 12:02:36