首页 > 解决方案 > Python打字如何描述类型

问题描述

我想为“工厂函数”定义一个签名,它有一个参数作为类型描述符,返回值是适合这种类型的实例。

import typing

T = typing.TypeVariable("T")
my_list = typing.List[str]

def a_factory(descriptor:???) -> T:
  pass

var = a_factory(my_list) #iferred type should be `my_list`, i.e. List[str]

这适用于普通类型,通过使用typing.Type[T]和 IDE 正确识别具有以下签名的变量类型

import typing

T = typing.TypeVariable("T")

def a_factory(descriptor:typing.Type[T]) -> T:
  pass

var = a_factory(str) #type is inferred as str properly

,但到目前为止我找不到???类型描述符的正确构造

标签: pythontype-hintingpython-typing

解决方案


推荐阅读