技术速递|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/…

HashMap源码解析

HashMap是Java集合框架中非常重要的一个类,它实现了Map接口,用于存储键值对。HashMap允许使用null作为键和值,下面是对 HashMap源码的基本解析,主要关注其内部结构和核心方法。 内部结构 Node 节点 HashMap内部通过Node类来存储键值对。每个Node对象包含一个键、一个值、…

西安天童美语知识课堂:日全食

4月9日,北美洲上演了一场日全食“大片”,形成过程中还出现了“贝利珠”,太阳光从月亮比较凹的那个位置漏了出来,就像一颗璀璨的钻石。这一神奇的天文现象引起了全世界的关注,借着这个机会,西安天童美语想给…

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 前沿工作

Nginx-那些事

文章目录 前言1 Nginx的隧道模式,网关,代理与反向代理2 负载均衡 与 集群3 动静分离配置4 URL REWrite 伪静态这配置5 防盗链6 高可用7 对客户端的缓冲与限制8 X-ForWarded-For获取真实IP9 Gzip 动态压缩优缺点10 跳板机11 断点续传12 多级缓存13 带宽限…

算法第62天 单调栈2

503 下一个更大元素II 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数&…

JUC下的CompletableFuture详解

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

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

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

人工智能技术对未来各行业的影响与应对策略

随着人工智能技术的快速发展和广泛应用,各行各业都面临着前所未有的变革和挑战。人工智能技术已经开始深刻影响生产制造、金融、医疗、交通等行业,为企业带来了更高效、更智能的生产和管理方式,同时也带来了一系列新的问题和机遇。 首先&…

在Linux系统设置SSH防爆破!

liunx系统的SSH远程端口非常容易遭受口令爆破,如果密码设置太简单很容易直接被网络攻击爆破而植入恶意程序,木马,恶意脚本等,进而导致数据被删,盗,沦为黑客的肉鸡对外DDoS,服务器公网IP容易被监…

C++(动态规划之拆分整数)

其实我交上去都有点似懂非懂 题目:(343. 整数拆分 - 力扣(LeetCode)) 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 …

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

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

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

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

驱动开发-用户空间和内核空间数据传输

1.用户空间-->内核空间&#xff08;写&#xff09; #include<linux/uaccess.h> int copy_from_user(void *to,const void __user volatile*from,unsigned long n) 函数功能&#xff1a;将用户空间数据拷贝到内核空间 参数&#xff1a; to&#xff1a;内核空间首地…

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

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