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

如何为返回子类的Python方法添加类型提示?

解决Python前向引用的类型提示问题

针对你遇到的父类中引用未定义子类导致类型提示报错的问题,有几种简洁的解决方式:

方法1:使用字符串字面量(Python 3.7+)

直接将返回类型用字符串包裹,类型检查器会自动识别该字符串作为前向引用的类型:

class A:
    def get_b(self) -> "B":  # 用字符串标记未定义的B类
        return B()  # 返回B类实例示例

class B(A):
    pass

方法2:导入__future__.annotations(Python 3.7+)

在文件顶部导入该模块后,所有类型注解会被当作字符串处理,自动解决前向引用问题,无需手动给类型加引号:

from __future__ import annotations

class A:
    def get_b(self) -> B:  # 直接写B即可,注解会被视为字符串
        return B()

class B(A):
    pass

该特性在PEP 484的「前向声明问题」章节中有相关规范说明。

方法3:使用typing.ForwardRef(Python 3.6+)

适合Python 3.6及更早版本,显式创建前向引用对象:

import typing

class A:
    def get_b(self) -> typing.ForwardRef("B"):
        return B()

class B(A):
    pass

不过这种方式相对前两种不够简洁,3.7+版本更推荐前两种方案。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 05:20:23