我有一个实现MutableMapping的类
V = TypeVar('V')
K = TypeVar('K')
class MM(MutableMapping[K, V]):
def __getitem__(self, k):
return 1
def __setitem__(self, k, v):
pass
def __delitem__(self, k):
pass
def __iter__(self):
return iter(())
def __len__(self):
return 0
被这样使用:
test: MM[str, int] = MM()
test["a"] = 1
var = test["a"]
变量var应该是int类型(根据类型提示),但是pycharm告诉我不能推断出它的类型。
这是pycharm中的错误,还是我做错了什么?
另一件事令人惊讶的是,当我将类定义更改为]时>
MM(MutableMapping[str, V])
Pycharm表示var的类型为字符串。我想念什么?
我有一个实现MutableMapping的类V = TypeVar('V')K = TypeVar('K')类MM(MutableMapping [K,V]):def __getitem __(self,k):返回1 def __setitem __(self, k,v):...
您可能需要为每个方法添加类型提示。例如: