微軟推出的 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://www.toutiao.com/i6914129053083615758/