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

Python typing:如何声明函数返回值为传入类参数的实例类型

解法

你可以通过绑定边界的泛型实现精准的类型对应,步骤如下:

  1. 先定义绑定了enum.Enum边界的TypeVar,再将入参class_声明为该泛型的类类型,返回值直接标注为该泛型即可:
import enum
from typing import Type, TypeVar

# 定义泛型T,边界为enum.Enum,代表所有Enum的子类
T = TypeVar('T', bound=enum.Enum)

def instantiate(class_: Type[T], param: str) -> T:
    return class_(param)
  1. 效果验证
    假设你有自定义枚举类:
class MyEnum(enum.Enum):
    OPT_A = "a"
    OPT_B = "b"

调用instantiate(MyEnum, "a")时,类型检查器会自动识别返回值类型为MyEnum,而非宽泛的enum.Enum,完全符合需求。

补充说明:如果你使用Python 3.10及以上版本,可以直接用内置的type[T]替换typing.Type[T],无需额外导入Type。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:09:03