Python类型:如何使用第三方类型指定类型别名?

Python类型:如何使用第三方类型指定类型别名?,python,software-design,mypy,python-typing,Python,Software Design,Mypy,Python Typing,我对python类型还不太熟悉,遇到了一个问题 在我的项目中,我有一些传递或返回嵌套类型的函数 今天,我发现可以通过python类型指定别名。 我做到了,但不幸的是,mypy给了我很多错误 问题是,我想要为其提供别名的类型包含的类型不是普通类型包中的类型 目前,我使用键入numpy数组 我想为以下类型提供别名: List[List[Tuple[NDArray[(Any,), int], NDArray[(Any,), int]]]] mypy将NDArray类型解释为“Any”,因此我无法为

我对python类型还不太熟悉,遇到了一个问题

在我的项目中,我有一些传递或返回嵌套类型的函数

今天,我发现可以通过python类型指定别名。 我做到了,但不幸的是,mypy给了我很多错误

问题是,我想要为其提供别名的类型包含的类型不是普通类型包中的类型

目前,我使用键入numpy数组

我想为以下类型提供别名:

 List[List[Tuple[NDArray[(Any,), int], NDArray[(Any,), int]]]]
mypy将NDArray类型解释为“Any”,因此我无法为该类型提供别名。 如果我将此类型分配给别名并使用它键入函数,则会收到一条错误消息:

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
当我用int或str等类型替换numpy数组类型时,别名起作用了

我知道这是一个非常嵌套的类型,我正在尝试重新构造类型和函数。无论如何,我希望通过使用别名使代码更具可读性

有没有一种方法可以为这样的类型提供别名?
非常感谢你的帮助

在您尝试定义类型之前是否正确导入了NDArray?
nptyping
无论如何都与mypy不兼容(而且它的设计决策首先非常适合NumPy)。(实际上,自从上次我检查以来,它看起来有了一次大的改进,所以
nptyping.NDArray
比以前的
nptyping.Array
更适合NumPy。不过,它仍然与mypy不兼容,而且它确实需要某种方式来表示数组的维度如何相互关联。)在您尝试定义类型之前是否正确导入了NDArray?
nptyping
无论如何都与mypy不兼容(而且它的设计决策首先非常适合NumPy)。(实际上,自从上次我检查以来,它看起来有了一次大的改进,所以
nptyping.NDArray
比以前的
nptyping.Array
更适合NumPy。不过,它仍然与mypy不兼容,而且它确实需要某种方式来表示数组的维度如何相互关联。)