大家是如何实时检查 Python 变量类型的?

2019-09-20 17:17:01 +08:00
 szzhiyang

我目前使用的 Python 实时类型检查方案是在 Microsoft Python Extension for VS Code 中启用 mypy --strict 检查,但是发现这个方案存在一些瑕疵,比如将鼠标悬停在某个变量名上方时 VS Code 不能详细提示它的类型(它只会把 Dict[str, int] 类型提示为 dict 类型)。

我还尝试过 PyCharm ,不过不知道是因为 PyCharm 本身做不到还是我没找对门路,我一直没能将它设置为实时使用 mypy 检查。

我现在想知道:




回复前必读:


5376 次点击
所在节点    Python
44 条回复
laike9m
2019-09-22 11:04:01 +08:00
@yegle 我又想了一下,根源不是不支持 exclude,而是不支持 AND 条件。但是 typing 支持 Union,所以按照现在的设计应该写成 Union[List[str], Tuple[str], Set[str]]。从某种意义上说这样更明确。
szzhiyang
2019-09-22 12:12:05 +08:00
@laike9m 多谢,不过 pytype 好像不能被配置成实时检查的效果。
yegle
2019-09-28 03:28:07 +08:00
@laike9m 确实需要 exclude,或者正式支持 typing.Char

举个例子,你给的 Union 类型并不支持 typing.Iterable,不支持 typing.KeysView/typing.ItemsView/typing.ValuesView


这个是我几年前提的 FR:github.com/python/typing/issues/510
laike9m
2019-09-28 09:21:24 +08:00
@yegle 是的。我的意思其实就是 typing 现在的思路是白名单。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/602617

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX