Наследовать структуру ввода python из базового класса

#python #inheritance

#python #наследование

Вопрос:

 from typing import Dict

class MyDict(dict):
   pass

def f() -> Dict[int, int]: # works
    return {}

def g() -> MyDict[int, int]: # expected no type argument
    return MyDict()

g()

  
 $ python som.py
TypeError: 'type' object is not subscriptable
  

Также pylint возвращает
E1136: Value 'MyDict' is unsubscriptable (unsubscriptable-object)

Как я могу наследовать структуру для ввода из Dict? Или, по крайней мере, как разрешить вводить MyClass[Any] и MyClass[Any, Any]?

Комментарии:

1. docs.python.org/3/library/…

2. Обратите внимание, что наследование от Generic позволит ему запускаться, но неправильно вводит подсказку о унаследованных методах. Я не знаю, есть ли способ сделать это правильно. Я думаю, вам нужно будет использовать переменные to KT и VT type , используемые в typing , но они недоступны.