微软推出的Pylance,随着VS Code的更新,性能又前进了一步

2021 年 1 月 5 日 机器之心

选自towardsdatascience

作者 Dimitris Poulopoulos
机器之心编译
编辑: 陈萍

微软推出的 VS Code Python 语言插件 Pylance,给 Python 带来编译语言般的开发支持。对于最近更新的 VS Code 版本,除了保留 Pylance 原始特性外,又引入了新特性。



Pylance 是微软今年推出的 Python 语言服务器,可以利用语言服务器协议与 VS Code 进行通信。Pylance 在 VS Code 中为 Python 提供了快速、特性丰富的语言支持,并依赖于核心的 Python 扩展,从而极大地改善了 VS Code 中的 Python 体验。

随着本月 VS Code 的更新,Pylance 可以执行用户期待已久的操作,将 Python 开发体验带到一个新的水平。在本文中,机器学习工程师 Dimitris Poulopoulos 将为读者介绍 Pylance 的功能以及在新版 VS Code 中的可用最新特性。

Python stub 文件

Pylance 利用类型 stub 文件(.pyi 文件)和惰性类型推断为使用者提供了高效的开发体验。

什么是 stub 文件呢?

Stub 文件为 Python 模块提供类型提示信息。完整的官方信息可以在 PEP-484 中的 Stub-files 章节中找到。例如,下面的 Python 函数存在于 my_function.py 模块:

def add(a, b):   return a + b

我们也可以创建一个新的 stub 文件 my_function.pyi,以提供类型提示:

def add(a: int, b: int) -> int: ...

注意:在 stub 文件中,定义函数末尾的「...」是语法的一部分。

然而,我们可以在 Python 模块中插入类型提示,而不需要创建新的 stub 文件,如下代码所示

def add(a: int, b: int) -> int:   return a + b

问题来了:我们为什么要使用 stub 文件呢?这里有几个原因:例如保持. py 文件向后兼容;向现有代码库中提供类型提示,并希望尽量减少源代码本身的更改等等。

讲完 stub 文件优点,我们再回到 Pylance 本身。stub 文件通过丰富的类型信息增强了 Python IntelliSense 体验,帮助开发者更快地编写代码。更重要的是,Pylance 已经为流行模块提供了一个 stub 集合,其内置的 stub 库提供精确的类型检查以及快速自动补全功能。

Pylance 特性展示

和其他 Python 语言服务器一样,Pylance 也是围绕提升开发效率和体验进行优化。Pylance 特性有很多,下面介绍几个比较重要的特性:

类型信息显示: 当你把鼠标悬浮在对应的函数上方时,就可以显示对应的函数文档。


自动导入功能: 在使用 Pycharm 的时候,当用到某个包或者模块时,可以通过快捷键 Alt+Enter 快速导入对应的模块。通过 Pylance 也可以实现相同的功能,现在我们可以自动导入已经安装好的标准库模块。


类型检查: 类型检查可以帮助我们验证参数在传入函数执行前类型是否正确。Pylance 中类型检查默认是关闭的,需要在设置中启动,操作方法为:设置「python.analysis.typeCheckingMode」为「basic」或者是「strict」。


VS Code 更新引入了 Pylance 新特性

最近,VS Code 更新引入了几个新的 Pylance 特性,其中代码提取和 Pylance Insiders 程序非常重要。

代码提取: 我们可以通过单击来提取代码中的方法和变量。


Pylance Insiders: Pylance Insiders 程序,它提供了对新语言服务器特性和改进的早期访问。要启用 insiders,请设置「pylance.insidersChannel」:「daily」。

原文链接:https://towardsdatascience.com/pylance-the-best-python-extension-for-vs-code-ae299f35548c

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

登录查看更多
0

相关内容

Python是一种面向对象的解释型计算机程序设计语言,在设计中注重代码的可读性,同时也是一种功能强大的通用型语言。
专知会员服务
156+阅读 · 2021年3月6日
【微软】人工智能系统课程
专知会员服务
91+阅读 · 2020年12月31日
【2020新书】C语言编程傻瓜式入门,第二版,464页pdf
专知会员服务
63+阅读 · 2020年10月15日
【2020新书】C++20快速语法参考,第4版,209页pdf
专知会员服务
73+阅读 · 2020年8月5日
【2020新书】高级Python编程,620页pdf
专知会员服务
236+阅读 · 2020年7月31日
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
161+阅读 · 2020年7月24日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
88+阅读 · 2019年11月25日
VS Code Remote发布!真·远程开发
开源中国
6+阅读 · 2019年5月3日
数据科学、机器学习IDE概览
论智
9+阅读 · 2018年11月12日
占坑!利用 JenKins 持续集成 iOS 项目时遇到的问题
号称“开发者神器”的GitHub,到底该怎么用?
算法与数据结构
4+阅读 · 2018年3月29日
ROS 2正式版终于来了,还增加了这些新特性
量子位
3+阅读 · 2017年12月11日
PyTorch vs. TensorFlow之一个月用户体验
深度学习世界
3+阅读 · 2017年10月21日
手把手教你由TensorFlow上手PyTorch(附代码)
数据派THU
5+阅读 · 2017年10月1日
最全技术图谱!一文掌握人工智能各大分支技术
CSDN大数据
5+阅读 · 2017年7月13日
Arxiv
5+阅读 · 2019年1月16日
VIP会员
相关VIP内容
专知会员服务
156+阅读 · 2021年3月6日
【微软】人工智能系统课程
专知会员服务
91+阅读 · 2020年12月31日
【2020新书】C语言编程傻瓜式入门,第二版,464页pdf
专知会员服务
63+阅读 · 2020年10月15日
【2020新书】C++20快速语法参考,第4版,209页pdf
专知会员服务
73+阅读 · 2020年8月5日
【2020新书】高级Python编程,620页pdf
专知会员服务
236+阅读 · 2020年7月31日
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
161+阅读 · 2020年7月24日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
88+阅读 · 2019年11月25日
相关资讯
VS Code Remote发布!真·远程开发
开源中国
6+阅读 · 2019年5月3日
数据科学、机器学习IDE概览
论智
9+阅读 · 2018年11月12日
占坑!利用 JenKins 持续集成 iOS 项目时遇到的问题
号称“开发者神器”的GitHub,到底该怎么用?
算法与数据结构
4+阅读 · 2018年3月29日
ROS 2正式版终于来了,还增加了这些新特性
量子位
3+阅读 · 2017年12月11日
PyTorch vs. TensorFlow之一个月用户体验
深度学习世界
3+阅读 · 2017年10月21日
手把手教你由TensorFlow上手PyTorch(附代码)
数据派THU
5+阅读 · 2017年10月1日
最全技术图谱!一文掌握人工智能各大分支技术
CSDN大数据
5+阅读 · 2017年7月13日
Top
微信扫码咨询专知VIP会员