键类型检查mypy Dict类型

时间:2019-09-19 16:57:07

标签: python typechecking mypy

我最近开始使用mypy。 有没有一种方法可以对mypy中的Dic键进行类型检查。

例如)。

from __future__ import annotations
from typing import List, Set, Dict, Tuple, Optional 
import sys


adj_list: Dict[int,List[int]] = {} 

if "x" not in adj_list.keys():
    print('Not found') 

上面的代码没有显示任何mypy警告。在下面的代码中,我将一个字符串对象与仅包含int键的Dictionary键进行比较。 mypy是否可以警告此无效比较

1 个答案:

答案 0 :(得分:1)

是-使用--strict-equality标志。如果启用此标志,mypy将产生以下错误:

test.py:8: error: Non-overlapping container check (element type: "str", container item type: "int")

您可以在mypy文档的Miscellaneous strictness options section底部附近找到有关此标志的更多信息,有关其支持的命令行标志。

如果您希望更严格的类型检查,则可以启用更多严格性标志-使用--strict标志将启用大多数严格性标志。 (尽管不是--strict-equality标志,它必须单独配置。