Сужение 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 соответственно.
Есть ли хороший способ это обозначить?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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