Python in Visual Studio Code – 五月更新 新的自动缩进设置、实现所有继承的抽象类、Pylance 性能更新

143 天前
 winffee

我们很高兴地宣布 Visual Studio Code 的 PythonJupyter 扩展将于 2024 年 5 月发布!

此版本包括以下公告:

“Implement all inherited abstract classes”代码操作

抽象类充当其他类的“蓝图”,并通过促进子类要遵守的清晰结构和要求来帮助构建模块化、可重用的代码。要在 Python 中定义抽象类,可以在 abc 模块中创建一个继承自 ABC 类的类,并使用 @abstractmethod 装饰器注释其方法。然后,可以创建从此抽象类继承的新类,并为基方法定义实现。使用最新的 Pylance 预发布版本可以更轻松地实现这些操作!定义从抽象类继承的新类时,现在可以使用“实现所有继承的抽象类”代码操作自动实现父类中的所有抽象方法和属性:

新的自动缩进设置

以前,Pylance 的自动缩进行为是通过editor.formatOnType设置控制的,如果想要禁用自动缩进,但通过其他支持的工具启用字体格式,这曾经是有问题的。为了解决这个问题,Pylance 的最新预发布版本现在有自己的设置来控制自动缩进行为,python.analysis.autoIndent 默认情况下是启用的。

Debugpy 从 Python 扩展中删除,转而使用 Python 调试器扩展

在我们的 2024 年 2 月发布博客中,我们宣布将所有调试功能移至 Python 调试器扩展,该扩展默认与 Python 扩展一起安装。在此版本中,我们从 Python 扩展中删除了重复的调试代码,这有助于减小扩展下载大小。作为此更改的一部分,在 launch.json 配置文件中指定"type": "python""type": "debugpy"两者都被解释为对 Python 调试器扩展路径的引用。这确保了无缝过渡,而无需对现有配置文件进行任何修改即可有效运行和调试。展望未来,我们建议使用 "type": "debugpy" ,因为这直接对应于 Python 调试器扩展,该扩展提供对旧版和新式 Python 版本的支持。

现在可以在测试期间禁用 Socket

现在,您可以从测试 UI 使用套接字禁用来运行测试。这是通过 Python 扩展和测试运行子进程之间的通信切换来实现的,现在使用命名管道而不是编号端口。此功能在 Python 测试重写中可用,默认情况下向所有用户推出,并将很快在 Python 扩展中完全采用。

Pylance 性能

Pylance 团队一直收到反馈,称 Pylance 的性能在过去几个版本中有所下降。因此,我们对内存消耗和索引进行了一些较小的改进,包括:

此外,我们还在最新的 Pylance 预发布版本中添加了一些功能,以帮助识别潜在的性能问题并收集有关您面临的问题的其他信息。当扩展检测到可能存在性能问题时,会出现一个新通知,提示你在 Pylance 存储库中提交问题。此外,Pylance 现在提供了一个为所有工作线程生成的cpuprofile分析命令Pylance: Start Profiling。此文件是在通过触发 Pylance: Start Profiling and Pylance: Stop Profiling 命令启动和停止性能分析后生成的,并且可以在问题中作为附加数据提供。

通过这些较小的改进和报告性能问题的其他方法,我们希望继续改进性能。我们非常感谢在我们努力解决问题时的反馈和合作!

其他更改和增强功能

我们还添加了一些小的增强功能,并修复了用户请求的问题,这些问题应该可以改善你在 Visual Studio Code 中使用 Python 和 Jupyter Notebooks 的体验。一些值得注意的变化包括:

我们还要特别感谢本月的贡献者:

征集社区反馈

当我们计划和优先考虑未来的工作时,我们重视您的反馈!以下是我们希望得到反馈的几个问题:

通过从市场下载 Python 扩展和 Jupyter 扩展来试用这些新的改进,或直接从 Visual Studio Code 中的扩展视图安装它们( Ctrl + Shift + X 或 ⌘ + ⇧ + X )。可以在文档中详细了解 Visual Studio Code 中的 Python 支持。如果您遇到任何问题或有建议,请在 Python VS Code GitHub 页面提出问题

909 次点击
所在节点    Visual Studio Code
0 条回复

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

https://www.v2ex.com/t/1038304

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

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

© 2021 V2EX