Как можно разделить словарь на подклассы, чтобы подкласс поддерживал подсказку универсального типа? Он должен во всех отношениях вести себя как словарь и поддерживать подсказки типов ключей и значений. Подкласс добавит функции, которые обращаются к данным словаря и управляют ими. Например, у него будет функция valueat(self, idx:int)
, которая возвращает значение словаря по заданному индексу.
Он не требует OrderedDict
в качестве базового класса, но словарь должен иметь предсказуемый порядок. Так как OrderedDict
поддерживает порядок вставки и поддерживает подсказки типов, это кажется разумным местом для начала. Вот что я пробовал:
from collections import OrderedDict
class ApplicationSpecificDict(OrderedDict[str, int]):
...
Однако это не удается с ошибкой: TypeError: 'type' object is not subscriptable
Это не поддерживается в Python 3.7+, или я что-то упустил?
typing.Dict[str, int]
. Вы искали что-то другое? - person user2357112 supports Monica   schedule 09.04.2020dataclass
в нескольких модулях. Чего не хватает вdataclass
, так это поведенияdict
(очевидно, однако можно добавить это, реализуя методыdict
, как я сделал вTypedDict
), а также отсутствие поддержки подсказок типов. Как пользователь может указать типы данных ключ/значение члена данныхdict
класса данных? - person Tom Jordan   schedule 09.04.2020