Сужение dict до TypedDictPython

Программы на Python
Anonymous
 Сужение dict до TypedDict

Сообщение Anonymous »

Я хочу сузить однозначно определенный тип dict[...] в суперклассе до определенного TypedDict в наследующем классе, но я не могу найти способ указать супертип на основе dict, которому может быть назначен TypedDict. Я использую pylance (стандартный).
Следующее работает нормально:

Код: Выделить всё

from typing import TypedDict

Base_t = TypedDict('Base_t', {})

class Base[T: Base_t]:
def get(self) -> T:
...

class Implementation_t(TypedDict):
one: str
two: int

class Implementation[U: Implementation_t](Base[U]):
def get(self) -> U:
...
Однако, если я хочу указать Base_t более узко (т. е. указать типы карты), следуя идее:

Код: Выделить всё

type Base_t = dict[str, str|int]
Проверке типов не удается присвоить Implementation_t Base_t. Мне нужен способ определить супертип для TypedDict Implementation_t, который определяет типы ключей и значений, но не какие-либо конкретные поля.
Примечание: Естественно, типы ключа и значения Implementation_t являются подмножествами Base_t соответственно.
Есть ли хороший способ чтобы обозначить это? Заранее большое спасибо.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -typeddict

Вернуться в «Python»