由於您將大部分開發時間花費在程式碼編輯器中,因此 Visual Studio 中的 Python 支援 提供的功能可協助您提高生產力。 功能包括 IntelliSense 語法醒目提示、自動完成、簽章說明、方法覆寫、搜尋和導覽。
程式碼編輯器會與 Visual Studio 中的 [互動式 ] 視窗整合。 當您工作時,很容易在兩個視窗之間交換程式碼。 如需詳細資訊,請參閱 教學課程步驟 3:使用互動式 REPL 視窗 和 使用互動式視窗 - 傳送至互動式命令。
大綱可 協助您專注於程式碼的特定區段。 如需在 Visual Studio 中編輯程式碼的一般檔,請參閱 程式碼編輯器的功能。
Visual Studio 物件瀏覽器 可讓您檢查每個模組中定義的 Python 類別,以及這些類別中定義的函式。 您可以在「 檢視 」功能表上存取此功能,或使用鍵盤快速鍵 Ctrl+Alt+J。
使用 IntelliSense 功能
IntelliSense 提供自動完成功能、函式簽章輔助、快速資訊和程式碼著色。 Visual Studio 2017 15.7 版和更新版本也支援 類型提示。
為了改善效能,Visual Studio 2017 15.5 版和更早版本中的 IntelliSense 取決於針對專案中每個 Python 環境產生的完成資料庫。 如果您新增、移除或更新套件,可能需要重新整理資料庫。 資料庫狀態會顯示在 Python 環境 視窗中的 IntelliSense 索引標籤上(方案總管的輔助視窗)。如需詳細資訊,請參閱 環境視窗參考。
Visual Studio 2017 15.6 版和更新版本會使用不同的方式來提供不相依於資料庫的 IntelliSense 完成。
Completions
完成項目會顯示為語句、識別碼及其他單詞,可以在編輯器的目前位置適當地輸入。 Intellisense 會根據上下文填入選項清單,並篩選不正確或分散注意力的項目。 完成通常是透過輸入不同的語句(例如import)和運算子(包括句點)來觸發的,但可以透過選擇鍵盤快速鍵Ctrl+J +空格來隨時出現。
當完成清單開啟時,您可以使用方向鍵、滑鼠或繼續輸入來搜尋您想要的完成。 當您輸入更多字母時,清單會進一步篩選以顯示可能的填寫完成選項。 您也可以使用捷徑,例如:
- 輸入名稱開頭不在的字母,例如 'parse' 以尋找 'argparse'
- 只輸入單字開頭的字母,例如 'abc' 以尋找 'AbstractBaseClass' 或 'air' 以尋找 'as_integer_ratio'
- 跳過字母,例如“b64”以查找“base64”
以下是一些範例:
當您在變數或值之後鍵入句點時,成員完成提示會自動出現,並顯示潛在類型的方法和屬性。 如果變數可以是多個類型,則清單會包含所有類型的所有可能性。 額外資訊會顯示哪些類型適用於每個完成。 當所有可能的類型都支援完成時,不會顯示任何註釋。
依預設,不會顯示「dunder」成員 (以雙底線開頭和結尾的成員)。 一般而言,不應直接存取這類成員。 如果您需要使用雙底線(dunder),請鍵入前導雙底線,以將這些完成選項新增至清單:
import and from ... import 陳述式會顯示可匯入的模組清單。 陳述 from ... import 式會產生一個清單,其中包含可從指定模組匯入的成員。
raise and except 陳述式會顯示可能是錯誤類型的類別清單。 此清單可能不會包含所有使用者定義的例外狀況,但可協助您快速找到合適的內建例外狀況:
選取符號@@會啟動裝飾器並顯示潛在的裝飾器。 其中許多物品不能用作裝飾器。 請檢查程式庫文件,以決定要使用的裝飾器。
如需詳細資訊,請參閱 選項 - 完成結果。
類型提示
類型提示可在 Visual Studio 2017 15.7 版和更新版本中使用。
Python 3.5+ 中的「類型提示」(PEP 484 (python.org) 是函數和類別的註釋語法,指示參數、傳回值和類別屬性的類型。 當您將滑鼠停留在具有這些註釋的函式呼叫、引數和變數上時,IntelliSense 會顯示類型提示。
在下列範例中, Vector 類別宣告為類型 List[float],且函式 scale 包含其引數和傳回值的類型提示。 將滑鼠停留在該函式的呼叫上會顯示類型提示:
在下一個範例中,您可以看到類別的 Employee 批註屬性如何顯示在屬性的 IntelliSense 完成快顯視窗中:
在整個專案中驗證類型提示也很有幫助,因為錯誤通常要到執行階段才會出現。 為此,Visual Studio 會透過操作功能表命令 Python> 在方案總管中執行 Mypy 整合業界標準 Mypy 工具:
如果需要,執行命令會提示您安裝 Mypy 套件。 然後,Visual Studio 會執行 Mypy 來驗證專案中每個 Python 檔案中的類型提示。 錯誤會出現在 Visual Studio 錯誤清單 視窗中。 在視窗中選取項目會導覽至程式碼中的適當行。
作為一個簡單的範例,下列函式定義包含類型提示,指出 input 引數是 type str,而對該函式的呼叫會嘗試傳遞整數:
def commas_to_colons(input: str):
items = input.split(',')
items = [x.strip() for x in items]
return ':'.join(items)
commas_to_colons(1)
在此程式碼上使用 Run Mypy 命令會產生下列錯誤:
備註
針對 3.5 之前的 Python 版本,Visual Studio 也會顯示您透過 Typeshed 存根檔案 (.pyi) 提供的類型提示。 當您不想直接在程式碼中包含類型提示,或為不直接使用類型提示的程式庫建立類型提示時,可以使用存根檔案。 如需詳細資訊,請參閱 Mypy 專案 wiki 中的 建立 Python 模組的存根 。
Visual Studio 目前不支援註解中的類型提示。
簽名說明
撰寫呼叫函式的程式碼時,當您鍵入左括弧 (時,會出現函式簽名提示。 它顯示可用的文件和參數資訊。 您可以使用函數呼叫內的鍵盤快速鍵 Ctrl+Shift+Space 來存取簽章說明。 顯示的資訊取決於函數原始程式碼中的文件字串,但包含任何預設值。
小提示
若要停用簽章說明,請移至 工具>選項>文字編輯器>Python>一般。 清除 語句完成>參數資訊 核取方塊。
快速資訊
將滑鼠指標停留在識別碼上會顯示「快速資訊」工具提示。 視識別碼而定,「快速資訊」可能會顯示潛在的值或類型、任何可用的文件、傳回類型和定義位置:
代碼著色
程式碼著色會使用程式碼分析中的資訊來著色變數、陳述式和程式碼的其他部分。 參照模組或類別的變數可能會以與函數或其他值不同的顏色顯示。 參數名稱可能以與局部或全域變數不同的顏色顯示。 根據預設,函式不會以粗體顯示。
若要自訂顏色,請移至 工具>選項>環境>字型和顏色。 在 「顯示項目」 清單中,修改所需的 Python 項目:
插入程式碼片段
程式碼片段是程式碼片段,可以使用鍵盤快速鍵並選取 Tab 鍵,插入檔案中。您也可以使用 [編輯>IntelliSense>插入程式碼片段 ] 和 [環繞] 命令,選取 [Python],然後選取所需的程式碼片段。
例如, class 是插入類別定義的程式碼片段的捷徑。 當您輸入 class 時,您會看到程式碼片段出現在自動完成選單中:
選取 Tab 會產生類別的其餘部分。 然後,您可以在名稱和基底清單上鍵入,使用 Tab 鍵在反白顯示的欄位之間移動,然後選取 Enter 鍵開始鍵入內文。
功能表命令
當您使用 [編輯>IntelliSense>插入程式碼片段 ] 功能表命令時,您會先選取 [Python],然後選取所需的程式碼片段:
[編輯>IntelliSense>用...環繞] 命令會將目前的選取範圍放在文字編輯器中所選擇的結構元素內。 假設您有一段程式碼,如下範例所示:
sum = 0
for x in range(1, 100):
sum = sum + x
選取此程式碼並選擇 Surround With 命令會顯示可用程式碼片段的清單。 從程式碼片段清單中選擇 def 會將選取的程式碼放在函數定義中。 您可以使用 Tab 鍵在醒目提示的函式名稱和引數之間導覽:
檢查可用的程式碼片段
您可以在 程式碼片段管理員中查看可用的程式碼片段。 從工具>程式碼片段管理員存取此功能,並選取 Python 作為語言:
若要建立您自己的程式碼片段,請參閱 逐步解說:建立程式碼片段。
如果您編寫了一段精彩程式碼並想分享,歡迎隨時將其發佈在 Gist 上,然後 告訴我們。 我們也許可以將它包含在未來版本的 Visual Studio 中。
流覽您的程序代碼
Visual Studio 的 Python 支援提供多種快速瀏覽程式碼的方法,包括提供原始程式碼的程式庫。 您可以找到具有 導覽列、 移至定義、 移至和 尋找所有參照 命令原始碼的程式庫。 您也可以使用 Visual Studio 物件瀏覽器。
導覽列
導覽列會顯示在每一個編輯器視窗的頂端,並包含兩層定義清單。 左側下拉式清單包含目前檔案中的最上層類別和函式定義。 右側下拉式清單會顯示左側所示範圍內的定義清單。 當您在編輯器中移動時,清單會更新以顯示您目前的上下文,您也可以從這些清單中選取一個項目以直接跳轉到該項目。
小提示
若要隱藏導覽列,請前往 工具>選項>文字編輯器>Python>一般 並清除 設定>導覽列。
轉到定義
「 移至定義」 指令會快速從 ID (例如函數名稱、類別或變數) 的使用跳至原始碼定義的位置。 若要執行該指令,請在識別碼上按一下滑鼠右鍵,然後選取 移至定義,或將插入符號放在識別碼上,然後選取 F12。 此命令適用於您的程式碼和原始程式碼可用的外部程式庫。 如果函式庫原始碼無法取得,移至定義 會跳至相關模組參考的 import 陳述式,或顯示錯誤。
前往
[ 編輯>移至 ] 命令 (Ctrl+,) 會在編輯器中顯示搜尋方塊,您可以在其中鍵入任何字串,並查看定義包含該字串之函數、類別或變數的程式碼中可能的相符專案。 此功能提供與 「移至定義」 類似的功能,但不需要尋找識別碼的使用。
若要導覽至該識別碼的定義,請按兩下任何名稱,或使用方向鍵後接 Enter 鍵選取名稱。
尋找所有參考
「 尋找所有參照」 功能是探索定義與使用任何指定 ID 的位置 (包括匯入與指派) 的實用方法。 若要呼叫指令,請在識別碼上按一下右鍵,然後選取「 尋找所有參照」,或將插入符號放在識別碼中,然後選取 Shift+F12。 按兩下清單中的項目會導覽至其位置。