该程序:
class Array:
def __init__(self, underlying):
self.underlying = underlying
def __class_getitem__(cls, key):
return Array(key)
def __getitem__(self, key):
pass
def __str__(self):
return f"Array({self.underlying=})"
def foo(name, kind):
pass
foo(name="x", kind=Array["int"])
在运行 mypy
检查时会收到如下错误提示:
x.py:17: error: The type "Type[Array]" is not generic and not indexable [misc]
这个 __getitem__
方法是我尝试添加的,看看能否解决问题(但实际上并未奏效)。在这里,我并不打算将 Array
作为类型(在 typing
意义上)来使用,只是想用一种简洁的方式来传递某种数组类型的表示。
那么,这个 mypy
错误是什么意思?除了使用 # ignore
注释之外,还有其他方法可以修复这个问题吗?