摘要:代碼實(shí)例運(yùn)行結(jié)果跟不用無(wú)異上一篇文章模塊分析第節(jié)加密模塊下一篇文章模塊分析第節(jié)日志模塊
上一篇文章:Python模塊分析:第2節(jié)-hashlib加密模塊
下一篇文章:Python模塊分析:第4節(jié)-logging日志模塊
Python是一門弱類型的語(yǔ)言,很多時(shí)候我們可能不清楚函數(shù)參數(shù)類型或者返回值類型,很有可能導(dǎo)致一些類型沒(méi)有指定方法,typing模塊可以很好的解決這個(gè)問(wèn)題。
該模塊加入并不會(huì)影響程序的運(yùn)行,不會(huì)報(bào)正式的錯(cuò)誤,只有提醒。一、typing模塊的作用typing模塊只有在python3.5以上的版本中才可以使用,pycharm目前支持typing檢查
類型檢查,防止運(yùn)行時(shí)出現(xiàn)參數(shù)和返回值類型不符合的問(wèn)題。
作為開(kāi)發(fā)文檔附件說(shuō)明,方便使用者調(diào)用時(shí)傳入和返回參數(shù)類型。
二、typing模塊的常用方式先看實(shí)例代碼:
from typing import List,Tuple,Dict def add(a:int,string:str,f:float,b:bool)->Tuple[List,Tuple,Dict,bool]: list1=list(range(a)) tup=(string,string,string) d={"a":f} bl=b return list1,tup,d,bl if __name__ == "__main__": print(add(5,"mark",183.1,False))
運(yùn)行結(jié)果:
([0, 1, 2, 3, 4], ("mark", "mark", "mark"), {"a": 183.1}, False)
說(shuō)明:
在傳入?yún)?shù)時(shí),通過(guò)“參數(shù)名:類型”的形式聲明參數(shù)的類型;
返回結(jié)果通過(guò)“->結(jié)果類型”的形式聲明結(jié)果的類型
在調(diào)用的時(shí)候如果參數(shù)的類型不正確pycharm會(huì)有提醒,但不會(huì)影程序的運(yùn)行。
對(duì)于如list列表等,還可以規(guī)定更加具體一些,如“->List[str]”,規(guī)定返回的是列表,并且元素是字符串。
現(xiàn)在對(duì)上面代碼進(jìn)行修改,可以看到pycharm背景變黃色區(qū)域,就是錯(cuò)誤類型提醒:
int,long,float:整型,長(zhǎng)整型,浮點(diǎn)型
bool,str:布爾型,字符串類型
List,Tuple,Dict,Set:列表,元組,字典,集合
Iterable,Iterator:可迭代器,迭代器類型
Generator:生成器類型
四、typing支持可能的多種類型由于python天生支持多態(tài),迭代器中的元素可能有多種。
代碼實(shí)例:
from typing import List, Tuple, Dict def add(a: int, string: str, f: float, b: bool or str) -> Tuple[List, Tuple, Dict, str or bool]: list1 = list(range(a)) tup = (string, string, string) d = {"a": f} bl = b return list1, tup, d, bl if __name__ == "__main__": print(add(5, "mark", 183.1, False)) print(add(5, "mark", 183.1, "False"))
運(yùn)行結(jié)果(跟不用typing無(wú)異):
([0, 1, 2, 3, 4], ("mark", "mark", "mark"), {"a": 183.1}, False) ([0, 1, 2, 3, 4], ("mark", "mark", "mark"), {"a": 183.1}, "False")
上一篇文章:Python模塊分析:第2節(jié)-hashlib加密模塊
下一篇文章:Python模塊分析:第4節(jié)-logging日志模塊
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42642.html
摘要:上一篇文章模塊分析第節(jié)模塊下一篇文章模塊分析第節(jié)模塊模塊是用來(lái)對(duì)字符串進(jìn)行加密的模塊,明文與密文是一一對(duì)應(yīng)不變的關(guān)系用于注冊(cè)登錄時(shí)用戶名密碼等加密使用。一函數(shù)分析共有種加密算法,分別得到不同的加密密文。 上一篇文章:Python模塊分析:第1節(jié)-random模塊下一篇文章:Python模塊分析:第3節(jié)-typing模塊 hashlib模塊是用來(lái)對(duì)字符串進(jìn)行hash加密的模塊,明文與密...
摘要:上一篇文章模塊分析第節(jié)模塊一日志記錄的級(jí)別優(yōu)先級(jí),記錄調(diào)試的詳細(xì)信息,只在調(diào)試時(shí)開(kāi)啟優(yōu)先級(jí),記錄普通的消息,報(bào)告錯(cuò)誤和警告等待。監(jiān)聽(tīng)端口號(hào)上一篇文章模塊分析第節(jié)模塊 上一篇文章:Python模塊分析:第3節(jié)-typing模塊 一、日志記錄的級(jí)別 debug:優(yōu)先級(jí)10,記錄調(diào)試的詳細(xì)信息,只在調(diào)試時(shí)開(kāi)啟 info:優(yōu)先級(jí)20,記錄普通的消息,報(bào)告錯(cuò)誤和警告等待。 warning:優(yōu)...
摘要:下一篇文章模塊分析第節(jié)加密模塊是產(chǎn)生偽隨機(jī)數(shù)的模塊,隨機(jī)種子默認(rèn)為系統(tǒng)時(shí)鐘。核心源碼時(shí)間復(fù)雜度實(shí)例結(jié)果下一篇文章模塊分析第節(jié)加密模塊 下一篇文章:Python模塊分析:第2節(jié)-hashlib加密模塊 random是Python產(chǎn)生偽隨機(jī)數(shù)的模塊,隨機(jī)種子默認(rèn)為系統(tǒng)時(shí)鐘。下面分析模塊中的方法: 1、random.randint(start,stop) 這是一個(gè)產(chǎn)生整數(shù)隨機(jī)數(shù)的函數(shù),參數(shù)...
摘要:課程簡(jiǎn)介簡(jiǎn)明易懂的課程,不僅適用于那些有其它語(yǔ)言基礎(chǔ)的同學(xué),對(duì)沒(méi)有編程經(jīng)驗(yàn)的同學(xué)也非常友好。建議遵守以下約定使用個(gè)空格來(lái)縮進(jìn)永遠(yuǎn)不要混用空格和制表符在函數(shù)之間空一行在類之間空兩行字典,列表,元組以及參數(shù)列表中,在后添加一個(gè)空格。 showImg(https://segmentfault.com/img/bVCldE); 課程簡(jiǎn)介:簡(jiǎn)明易懂的 Python3 課程,不僅適用于那些有其它語(yǔ)...
摘要:起步上一篇的枚舉類型文末說(shuō)有機(jī)會(huì)的話可以看看它的源碼。但這樣的方式并不好,范圍大,它包含該類的所有屬性和方法。而不單單是枚舉的命名空間。每個(gè)成員都有名稱屬性和值屬性上述的代碼中,取得的值是。 起步 上一篇 《Python 的枚舉類型》 文末說(shuō)有機(jī)會(huì)的話可以看看它的源碼。那就來(lái)讀一讀,看看枚舉的幾個(gè)重要的特性是如何實(shí)現(xiàn)的。 要想閱讀這部分,需要對(duì)元類編程有所了解。 成員名不允許重復(fù) 這部...
閱讀 1139·2023-04-26 02:46
閱讀 636·2023-04-25 19:38
閱讀 650·2021-10-14 09:42
閱讀 1249·2021-09-08 09:36
閱讀 1366·2019-08-30 15:44
閱讀 1331·2019-08-29 17:23
閱讀 2252·2019-08-29 15:27
閱讀 812·2019-08-29 14:15