我想为“工厂功能”定义一个签名,该签名具有一个参数作为类型描述符,而返回值就是适合该类型的实例。
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
,但到目前为止,我在???
中找不到类型描述符的正确构造