技术速递|Python in Visual Studio Code 2024年5月发布

排版:Alan Wang

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

此版本包括以下公告:

  • “Implement all inherited abstract classes”代码操作
  • 新的自动缩进设置
  • Debugpy 从 Python 扩展中删除,转而使用 Python 调试器扩展
  • 现在可以在测试期间禁用 Socket
  • Pylance 性能更新

如果您有兴趣,可以在我们的 Python、Jupyter 和 Pylance 扩展更新日志中查看完整的改进列表。

“Implement all inherited abstract classes”代码操作

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

“Implement all inherited abstr

新的自动缩进设置

以前,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 的性能在过去几个版本中有所下降。因此,我们对内存消耗和索引进行了一些较小的改进,包括:

  • 改进了第三方包索引的性能
  • 从工作空间 .conda 环境中跳过的 Python 文件无法扫描 (@pylance-release#5191)
  • 跳过不必要的py.typed文件检查的索引 (@pyright#7652)
  • 通过重构分词器和解析器输出来减少内存消耗 (@pyright#7602)
  • 改进了令牌创建的内存消耗 (@pyright#7434)

对于那些可能仍在使用 Pylance 时遇到性能问题的人,我们恳请通过命令面板中的 Pylance:Report Issue 命令提交问题,最好是日志、代码示例和/或安装在工作环境中的软件包。

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

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

其他更改和增强功能

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

  • 测试资源管理器在嵌套类中正确显示使用 testscenarios 单元测试和参数化测试的项目 (@vscode-python#22870)。
  • 测试资源管理器现在处理具有符号链接的工作区中的测试,特别是工作区根目录,这些工作区根目录是符号链接路径的子级,这在 WSL 方案中特别有用 (@vscode-python#22658)。

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

  • @DetachHead 支持在 @vscode-python#23267 的工作空间设置中进行实验配置
  • @DavidArchibald 在 @vscode-python-debugger#267 中修复了在 WSL 上运行时将调试器附加到进程的问题

征集社区反馈意见

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

  • (@vscode-python#22827) 中测试覆盖率的设计方案

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/9708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity TileMap入门

概述 相信很多同学学习制作游戏都是从2D游戏开始制作的吧,瓦片地图相信大家都有接触,那接下来让我们学习一下这部分的内容吧! Tilemap AnimationFrameRate:设置每帧动画的播放速率。Color:瓦片地图的颜色TileAnchor:锚点,&#x…

Docker容器创建各种镜像

目录 1.Docker创建Mysql容器 2.Docker创建Redis容器 3.Docker 创建minio容器 1.Docker创建Mysql容器 拉取镜像 docker pull mysql:8.0.20 宿主机创建挂载目录 /opt/mysql/conf /opt/mysql/data /opt/mysql/log 启动命令 docker run --name mysql -p 3306:3306 -v /opt/…

Set接口

Set接口的介绍 Set接口基本介绍 无序(添加和取出的顺序不一致),没有索引不允许重复元素,所以最多包含一个nullJDK API中Set接口的实现类:主要有HashSet;TreeSet Set接口的常用方法 和List 接口一样&am…

Windows11提示升级,我要点确定吗?

Windows 11自2021年10月推出以来,一直保持着缓慢而稳定的增长,相对来说在游戏PC上的影响力较大, 而Windows 10也即将于2025年10月结束支持。 截至2024年,Windows 11的主要版本包括24H2、 23H2、22H2和21H2。 24H2:20…

k8s遇到的常见问题及解决

1. error: open /var/lib/kubelet/config.yaml: no such file or directory 解决:关键文件缺失,多发生于没有做 kubeadm init就运行了systemctl start kubelet。 要先成功运行kubeadm init 2. 执行初始化kubeadm init ------的时候报错 The HTTP call…

五一超级课堂---Llama3-Tutorial(Llama 3 超级课堂)---第四节Llama 3 高效部署实践(LMDeploy 版)

课程文档: https://github.com/SmartFlowAI/Llama3-Tutorial 课程视频: https://space.bilibili.com/3546636263360696/channel/collectiondetail?sid2892740&spm_id_from333.788.0.0 操作平台: https://studio.intern-ai.org.cn/consol…

GAMMA Lab——知识图谱和LLM大模型

图机器学习的发展与分类 图基础模型 LLM基础模型 GNN LLM 前沿工作

JUC下的CompletableFuture详解

详细介绍 CompletableFuture是Java 8引入的一个实现Future接口的类,它代表一个异步计算的结果。与传统的Future相比,CompletableFuture提供了更丰富的功能,比如链式调用、组合异步操作、转换结果、异常处理等,极大地增强了Java在…

TikTok shop多账户需要防关联吗?

TikTok是一个非常垂直的平台,每个账号的内容都应该尽可能的垂直,这样平台才能引流更多的流量。但是,TikTokShop只有一两个账号,流量往往难以保证,所以很多商家选择了TikTok的多账号运营模式。 众所周知,多店…

什么是SOL链跟单机器人与阻击机器人?

SOL链作为一个快速增长的区块链生态系统,为各种应用程序提供了丰富的发展机会。在SOL链上,智能合约的应用已经开始蓬勃发展,其中包括了许多与加密货币交易相关的应用。在本文中,我们将介绍在SOL链上开发的阻击机器人(S…

【静态分析】软件分析课程实验A3-死代码检测

官网: 作业 3:死代码检测 | Tai-e 参考: https://www.cnblogs.com/gonghr/p/17981720 --------------------------------------------------------------------- 1 作业导览 为 Java 实现一个死代码(dead code)检…

【计算机毕业设计】springboot果蔬种植销售一体化服务平台

伴随着我国社会的发展,人民生活质量日益提高。于是对果蔬种植销售一体化服务管理进行规范而严格是十分有必要的,所以许许多多的 信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套果蔬种植销售一体化服务平台&…

RS2255XN功能和参数介绍及PDF资料

RS2255XN是一款由Runic(润石)公司生产的模拟开关。以下是关于RS2255XN的一些技术参数和特点: 封装:MSOP-10 电源电压范围:2.5V至5.5V 工作温度范围:-40C至125C 类型:模拟开关 品牌:R…

如何使用Whisper音频合成模型

Whisper 是一个通用语音识别模型,由 OpenAI 开发。它可以识别多种语言的语音,并将其转换为文本。Whisper 模型采用了深度学习技术,具有高准确性和鲁棒性。 1、技术原理及架构 Whisper 的工作原理:音频被分割成 30 秒的片段&#…

云计算导论(2)---云计算基础

文章目录 1. 分布式计算2. 分布式计算系统架构3. 分布式计算关键技术4. 分布式计算性能优化方法5. 云计算的基本概念6. 云计算的关键技术 1. 分布式计算 1. 定义:分布式计算是一种计算方法,将一个大型任务拆分成多个小任务,并分配给多台计算机…

c#绘制渐变色的Led

项目场景: c#绘制渐变色的button using System; using System.ComponentModel; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; using static System.Windows.Forms.AxHost;namespace WindowsFormsApp2 {public class Gradie…

【C++】-类模板-002

1创建类模板 (1)新建工程 (2) (3) (4) (5)模板运行结果 2【UI】设计器 (1)跳转到【UI】设计器 (2)添加…

纯血鸿蒙APP实战开发——一镜到底“页面转场”动画

介绍 本方案做的是页面点击卡片跳转到详情预览的转场动画效果 效果图预览 使用说明 点击首页卡片跳转到详情页,再点击进入路由页面按钮,进入新的路由页面 实现思路 首页使用了一种视觉上看起来像是组件的转场动画,这种转场动画通常是通过…

教你解决PUBG绝地求生打完一把游戏无法返回大厅的问题

《绝地求生》(PUBG)作为风靡全球的战术竞技大作,凭借其高度还原的战场氛围和扣人心弦的生存挑战吸引了大量游戏玩家。不过,部分玩家在经历了一场紧张激烈的比赛后,遭遇了一个小困扰:游戏未能顺畅过渡到结算…

C++基础中的存储类别

存储的类别是变量的属性之一,C语言定义了4种变量的存储类别,分别是auto变量、static变量、register变量和extern变量。以下重点介绍这几种类型。 一、auto变量 auto变量是C默认的存储类型。函数内未加存储类型说明的变量均被称为自动变量,即…