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