【发布时间】:2023-03-14 03:40:02
【问题描述】:
我有一个实现 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 的类型是字符串。我错过了什么?
【问题讨论】:
标签: python-3.x pycharm type-hinting