VS Code中Python代码的None导致代码补全失效问题求助
VS Code Python代码补全遇None后失效的原因
问题现象
- 定义如下
Card类后,代码中第一个None出现后,输入c.时代码补全功能停止工作,仅显示“无可用建议” - 将
None改为字符串"None",补全功能会恢复,直到下一个None出现;改为False则补全正常,该问题仅针对None,函数作用域内同样存在 - 已完全重装VS Code(手动删除
~/.config/Code/和~/.vscode/文件夹),问题仍未解决
涉事代码
from dataclasses import asdict from dataclasses import dataclass from dataclasses import field @dataclass class Card: summary: str = None owner: str = None state: str = "todo" id: int = field(default=None, compare=False) @classmethod def from_dict(cls, d): return Card(**d) def to_dict(self): return asdict(self)
环境信息
- 操作系统:Ubuntu 20.04
- Python版本:3.10.4(pyenv管理的虚拟环境)
- VS Code已安装扩展:HTML CSS Support、Python(含Pylance、Jupyter)、Python Environment Manager、rust-analyzer
问题原因
这是VS Code v1.71版本之前存在的已知Bug,由Pylance语言服务对None作为类属性默认值的类型推断逻辑错误引发,会直接中断后续的代码补全提示流程。升级VS Code到v1.71及以上版本即可修复该问题。
内容的提问来源于stack exchange,提问作者tsvenson
相关产品推荐
相关产品推荐

