Python中是否可以声明变量数据类型?为何类型标注后赋值不匹配无告警
Python 3.5+ 引入的变量: 类型语法属于类型注解,原生Python解释器只会解析这个语法、并不会在运行时做任何类型校验,所以你给标注了int的x赋值字符串、正常运行输出是完全符合Python设计的。
你在VS Code里看不到类型不匹配警告,是因为没有启用静态类型检查工具,按下面的步骤配置即可生效:
配置VS Code Python类型检查的方法
- 方案1:使用Python插件内置的Pyright检查
- 确保你已经安装了VS Code官方的Python扩展插件
- 按
Ctrl+,(Windows/Linux)或Cmd+,(Mac)打开设置面板 - 搜索
python.analysis.typeCheckingMode,将取值从默认的off改成basic或者strict,修改完成后立刻就能看到类型不匹配的警告提示
- 方案2:使用第三方mypy检查工具
- 终端执行命令
pip install mypy安装mypy - 在设置中搜索
python.linting.mypyEnabled,勾选该选项开启mypy校验
- 终端执行命令
如果你需要在代码运行时也强制校验类型,原生Python不支持该能力,需要引入
pydantic之类的第三方库实现。
内容的提问来源于stack exchange,提问作者Eaguilar
相关产品推荐
相关产品推荐

