У меня есть функция, которая принимает класс и возвращает экземпляр этого класса. Я пытаюсь придумать, как это напечатать, с одной изюминкой. Обычно я использую модуль ввода и делаю что-то вроде
Код: Выделить всё
T = TypeVar("T", bound="BaseClass")
def foo(specific_type: Type[T]) -> T:
...
Однако в моем случае я не хочу брать класс, унаследованный от определенного базового класса. Что я действительно хочу сделать, так это взять класс с определенным метаклассом и вернуть экземпляр этого класса, но я не могу найти способ напечатать это без добавления какой-то фиктивный базовый класс. В идеале мне нужен обратный тип, что-то вроде:
Код: Выделить всё
M = TypeVar("M", bound="MyMetaclass")
def foo(specific_type: M) -> Instance[M]: #
Подробнее здесь: [url]https://stackoverflow.com/questions/68821485/type-hint-an-instance-created-by-an-instance-of-a-metaclass[/url]