溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python如何使用typing模塊加強(qiáng)代碼的可讀性

發(fā)布時(shí)間:2022-03-03 13:59:45 來(lái)源:億速云 閱讀:145 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“python如何使用typing模塊加強(qiáng)代碼的可讀性”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“python如何使用typing模塊加強(qiáng)代碼的可讀性”這篇文章吧。

一、需求描述

沒(méi)有類型提示的編程,總覺(jué)得不太方便,好在python3.5以后內(nèi)置了typing模塊。

typing模塊會(huì)對(duì)函數(shù)和變量類型進(jìn)行注解。

但是Python 運(yùn)行時(shí)不強(qiáng)制執(zhí)行函數(shù)和變量類型注解,但這些注解可用于類型檢查器、IDE、靜態(tài)檢查器等第三方工具。

官方網(wǎng)址:

typing --- 類型提示支持 — Python 3.10.1 文檔

https://docs.python.org/zh-cn/3/library/typing.html

二、實(shí)戰(zhàn)演練

1、體驗(yàn)注解功能

如下所示,定義變量類型而不賦值,那么在賦值的時(shí)候就會(huì)有相應(yīng)的提示,但運(yùn)行不報(bào)錯(cuò)

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

python如何使用typing模塊加強(qiáng)代碼的可讀性

 2、List和Dict的使用

# List的使用
def test_List(num: int) -> List[int]:
    return [num, bool(num), str(num)]  # 只要有一個(gè)符合指定類型,就不會(huì)給出提示信息
 
# Dict的使用
def test_Dict(num: int) -> Dict[str,int]:  #
    return {"num": "num", 1: "str(num)", "str(num)": 1}  # 只要有一個(gè)符合指定類型,就不會(huì)給出提示信息
    # return {1: 3}  # 如果是key是1,則會(huì)出現(xiàn)提示key應(yīng)該是str
    # return {"1":3}
 
print(test_Dict(5))

python如何使用typing模塊加強(qiáng)代碼的可讀性

 3、Union的使用

# List的使用
def test_List(num: int) -> [int or str or bool]:
    return [num, bool(num), str(num)]  # 只要有一個(gè)符合指定類型,就不會(huì)給出提示信息
 
# Dict和Union的使用
def test_Dict(num: int) -> Dict[str,Union[int, str, bool]]:  #
    return {"num": "num", 1: "str(num)", "str(num)": 1}  # 只要有一個(gè)符合指定類型,就不會(huì)給出提示信息
    # return {1: 3}  # 如果是key是1,則會(huì)出現(xiàn)提示key應(yīng)該是str
    # return {"1":3}
print(test_List(1))
print(test_Dict(5))

python如何使用typing模塊加強(qiáng)代碼的可讀性

4、Optional的使用

這個(gè)參數(shù)可以為空或已經(jīng)聲明的類型,即 Optional[X] 等價(jià)于 Union[X, None] 

# Dict和Optional的使用
def test_Dict(num: int) -> Dict[str,Optional[str]]:  #
    return {"num": "num", 1: "str(num)", "str(num)": 1}  # 只要有一個(gè)符合指定類型,就不會(huì)給出提示信息
    # return {1: 3}  # 如果是key是1,則會(huì)出現(xiàn)提示key應(yīng)該是str
    # return {"1":3}
 
def test_Dict01(num: int) -> Dict[str,Optional[int]]:  #
    return {"1":None}

5、Tuple的使用

與列表一致,元組泛型要求每個(gè)位置的類型要一一對(duì)應(yīng)

# Optional的使用
def test_Dict(num: int) -> Dict[int,Tuple[int,int]]:  #
    return {1:(1,2)}
    # return {1:(1)}  # 非一一對(duì)應(yīng)的時(shí)候會(huì)給出提示

以上是“python如何使用typing模塊加強(qiáng)代碼的可讀性”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI