目錄
- 為什么要進行類型提示
- 變量添加靜態類型注釋
- 函數參數的類型注釋
- **基本類型注釋**
- **基于`typing`庫**
- 其他高級用法
- 注意事項
- 特殊情況
- 類引用自身實例作為形參時的類型注釋
- 參數要求為一個函數
為什么要進行類型提示
從 Python 3.5 開始引入,類型提示允許程序員為變量、函數參數和返回值指定預期的類型。這些提示不會改變 Python 的動態類型本質,但可以幫助 IDE 和類型檢查器理解代碼。
在腳本中進行類型提示,會使得代碼比較規范,整體上說,會有以下幾點好處:
- 提高代碼可讀性:類型注釋使得變量的預期類型變得明確,可以快速了解每個變量應該存儲何種類型的數據,而不需要深入閱讀代碼或執行它來推斷類型。
- 促進代碼的自我文檔化:類型注釋充當了代碼的一部分文檔,因為類型注釋本身就提供了有關函數如何使用的關鍵信息。
- 靜態類型檢查:雖然Python是動態類型語言,類型注釋本身不會影響代碼的運行時行為,但它們允許使用靜態類型檢查工具(如
mypy
)來識別代碼中的類型錯誤。這種靜態類型檢查可以在代碼運行之前發現潛在的錯誤和不一致,從而提前防止一些運行時錯誤。 - 提高開發效率:許多現代的開發環境(IDEs)和編輯器支持類型提示,比如pycharm,可以利用這些信息提供更智能的代碼補全、類型檢查和重構工具。這可以顯著提高開發效率,減少因類型錯誤造成的調試時間。
- 便于重構:尤其是過了一段時間再去看代碼的時候,有完整的類型提示,類型注釋可以幫助確保改動不會意外地改變變量的預期類型,或者不會破壞其他代碼部分的類型約定。這使得重構過程更加安全和可靠。
變量添加靜態類型注釋
在Python中,給變量添加靜態類型注釋的方式很直接。這里有一些示例來展示不同情況下的類型注釋使用:
-
基本類型(比如
int
,float
,str
):age: int = 30 name: str = "Alice" price: float = 19.99
-
列表、元組和其他容器(指定容器中元素的類型):
from typing import List, Tuplenumbers: List[int] = [1, 2, 3, 4, 5] coordinates: Tuple[float, float] = (10.5, -20.3)
-
字典(指定鍵和值的類型):