Sha*_*ter 6 python typing pycharm python-3.x python-3.7
我正在尝试处理一个dict对象,PyCharm 给了我一个意外的类型警告。
这是一个产生警告的简化示例:
X = type("X", (), {})
def big_foo(data: Dict[str, Any]) -> Dict[str, Any]:
def little_foo(entries: Iterable[Tuple[str, Any]]) -> Iterable[Tuple[X, Any]]:
pass
def little_bar(entry: Tuple[X, Any]) -> Tuple[str, Any]:
pass
return dict(map(little_bar, little_foo(data.items())))
Run Code Online (Sandbox Code Playgroud)
PyCharm 将此警告附加到data.items()最后一行的短语中:
Expected type 'Iterable[Tuple[str, Any]]', got 'ItemsView[str, Any]' instead
Run Code Online (Sandbox Code Playgroud)
我曾自信地预期dict.items()会返回某种Iterable元组。有没有好的方法向 PyCharm 解释发生了什么?代码实际上有问题吗?
| 归档时间: |
|
| 查看次数: |
1274 次 |
| 最近记录: |