Python печатает, как описать тип - PullRequest
0 голосов
/ 14 октября 2019

Я бы хотел определить сигнатуру для "фабричной функции", у которой в качестве дескриптора типа есть один параметр, а возвращаемое значение - это экземпляр, соответствующий этому типу.

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

, но пока я не могу найти подходящую конструкцию в ??? для дескрипторов типов

...