那可能吗?也许mypy可以做到,但是我更喜欢使用Python-3.6样式类型检查(如
a: List[str]),而不是# typeList[str]mypy中使用的注释样式(如)。我很好奇,是否在本机python 3.6中有一个开关可以实现我在上面提到的两点。
Python不可能为您做到这一点;您 可以 使用它
mypy来进行类型检查(PyCharms内置检查器也应该这样做)。除此之外,
mypy也
不仅限于 键入注释
# type List[str],还可以像在Python 3.6中那样使用变量注释,因此
a: List[str]效果同样好。
随着
mypy作为是,因为释放是新鲜的,你需要安装
typed_ast和执行
mypy以
--fast-parser和
--python-version 3.6
为记录在mypy的文档。这可能很快就会改变,但是现在您需要他们来使其平稳运行
更新:
--fast-parser并且
--python-version 3.6现在不需要。
之后,mypy就可以很好地检测到第二个操作的不兼容性
a: List[str]。假设您的文件
tp_check.py使用以下语句调用:
from typing import Lista: List[str] = []a.append('a')a.append(1)print(a)mypy使用上述参数运行(必须首先运行
pip install -U typed_ast):
python -m mypy --fast-parser --python-version 3.6 tp_check.py
捕获错误:
tp_check.py:5: error: Argument 1 to "append" of "list" has incompatible type "int"; expected "str"
如前所述 在类型与Python暗示许多其他的答案 ,
mypy和
PyCharmS’型,跳棋是进行验证,那些 不Python本身
。Python当前不使用此信息,它仅将其存储为元数据,并且在执行期间将其忽略。



