Я все еще наполовину новичок в типе python и столкнулся с проблемой.
В моем проекте у меня есть функции, которые передают или возвращают очень вложенные типы.
Сегодня я обнаружил, что вы можете назначить псевдонимы, набрав python. Я сделал это, но, к сожалению, mypy показал мне много ошибок.
Проблема в том, что тип, которому я хотел присвоить псевдоним, содержит тип, не входящий в стандартный пакет набора.
На данный момент я использую https://github.com/ramonhagenaars/nptyping для ввода моих numpy массивов.
Один из типов, которым я хотел присвоить псевдоним, следующий:
List[List[Tuple[NDArray[(Any,), int], NDArray[(Any,), int]]]]
mypy интерпретирует тип NDArray как «Любой», и поэтому я не мог дать этому типу псевдоним. Если я назначил этот тип псевдониму и набрал с ним функции, я получил сообщение об ошибке:
result_comparator.py:22: error: Invalid type alias: expression is not a valid type
result_comparator.py:22: error: Value of type "Type[List[Any]]" is not indexable
Когда я заменил типы массивов numpy на такие типы, как int или str, псевдонимы сработали.
Я знаю, что это очень вложенный тип, и я пытаюсь реструктурировать тип и функцию. Так или иначе, я бы хотел сделать код более читабельным, используя псевдонимы.
Есть ли способ присвоить псевдоним и такому типу? Большое спасибо за помощь!