我注意到Python 3.5和Python 3.6增加了很多关于静态类型检查的功能,所以我尝试了以下代码(在python 3.6稳定版本中)。
from typing import List
a: List[str] = []
a.append('a')
a.append(1)
print(a)
我惊讶的是,Python 没有给我报错或警告,尽管一个应该只包含字符串的列表中添加了 1。Pycharm 检测到了类型错误并发出了警告,但这并不明显,也没有显示在输出控制台中,我担心有时可能会错过它。我希望以下效果:
- 如果像上面那样明显地使用了错误的类型,请抛出警告或错误。
- 如果编译器无法可靠地检查我使用的类型是对还是错,请忽略它。