python使用typing模塊加強代碼的可讀性(實戰演示)
一、需求描述
沒有類型提示的編程,總覺得不太方便,好在python3.5以後內置瞭typing模塊。
typing模塊會對函數和變量類型進行註解。
但是Python 運行時不強制執行函數和變量類型註解,但這些註解可用於類型檢查器、IDE、靜態檢查器等第三方工具。
官方網址:
typing — 類型提示支持 — Python 3.10.1 文檔
https://docs.python.org/zh-cn/3/library/typing.html
二、實戰演練
1、體驗註解功能
如下所示,定義變量類型而不賦值,那麼在賦值的時候就會有相應的提示,但運行不報錯
from typing import AbstractSet from typing import Dict from typing import Generator from typing import List from typing import Mapping from typing import Optional from typing import Tuple from typing import TypeVar from typing import Union list_001:List[int] list_001 = 123
2、List和Dict的使用
# List的使用 def test_List(num: int) -> List[int]: return [num, bool(num), str(num)] # 隻要有一個符合指定類型,就不會給出提示信息 # Dict的使用 def test_Dict(num: int) -> Dict[str,int]: # return {"num": "num", 1: "str(num)", "str(num)": 1} # 隻要有一個符合指定類型,就不會給出提示信息 # return {1: 3} # 如果是key是1,則會出現提示key應該是str # return {"1":3} print(test_Dict(5))
3、Union的使用
# List的使用 def test_List(num: int) -> [int or str or bool]: return [num, bool(num), str(num)] # 隻要有一個符合指定類型,就不會給出提示信息 # Dict和Union的使用 def test_Dict(num: int) -> Dict[str,Union[int, str, bool]]: # return {"num": "num", 1: "str(num)", "str(num)": 1} # 隻要有一個符合指定類型,就不會給出提示信息 # return {1: 3} # 如果是key是1,則會出現提示key應該是str # return {"1":3} print(test_List(1)) print(test_Dict(5))
4、Optional的使用
這個參數可以為空或已經聲明的類型,即 Optional[X] 等價於 Union[X, None]
# Dict和Optional的使用 def test_Dict(num: int) -> Dict[str,Optional[str]]: # return {"num": "num", 1: "str(num)", "str(num)": 1} # 隻要有一個符合指定類型,就不會給出提示信息 # return {1: 3} # 如果是key是1,則會出現提示key應該是str # return {"1":3} def test_Dict01(num: int) -> Dict[str,Optional[int]]: # return {"1":None}
5、Tuple的使用
與列表一致,元組泛型要求每個位置的類型要一一對應
# Optional的使用 def test_Dict(num: int) -> Dict[int,Tuple[int,int]]: # return {1:(1,2)} # return {1:(1)} # 非一一對應的時候會給出提示
到此這篇關於python:使用typing模塊加強代碼的可讀性的文章就介紹到這瞭,更多相關python typing模塊加強代碼內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python中typing模塊的具體使用
- Python3 類型標註支持操作
- python 編碼中為什麼要寫類型註解?
- python typing模塊–類型提示支持
- 提高 Python 開發效率的3個小工具