是否可以“提示”字典键?

时间:2019-05-18 11:24:55

标签: python pycharm type-hinting

PyCharm Code completion>“基本完成”>“调用基本完成”>“字典”中,我看到,如果将字典硬编码为某些值,则在编写有关该字典的代码时可以使用代码完成。

但是显然,在很多情况下,您将使用字典,并且事先了解该字典的结构是什么,并且您不想将字典硬编码到代码中。例如,也许您正在解析一些具有预期结构的YAML或JSON。

如果您可以“暗示” Python中的结构,那将非常好,这样您就可以轻松,快速地编写使用该字典的所有位置的代码。有可能吗?

2 个答案:

答案 0 :(得分:3)

据我所知,在Python 3.8中引入TypedDict之前,尚无商定的方式来提示Python字典的特定键名和关联值。

答案 1 :(得分:1)

Python中还没有对类型(提示)字典的“官方”支持。但是,mypy_extensions包确实公开了TypedDict,它支持以下语法来定义可以由MyPy验证的类型化字典。

DictT = TypedDict(
    'DictT ',
    {
         'field': str, 
         'int_field': int,
    }
)

http://localhost:8080/report

然后您可以将MyPy集成到PyCharm中,但是根据他们的错误跟踪器,不直接支持类型提示TypedDicts https://www.python.org/dev/peps/pep-0589/#alternative-syntax