Python模塊分析:第3節-typing模塊

上一篇文章: Python模塊分析:第2節-hashlib加密模塊
下一篇文章: Python模塊分析:第4節-logging日誌模塊

Python是一門弱類型的語言,不少時候咱們可能不清楚函數參數類型或者返回值類型,頗有可能致使一些類型沒有指定方法,typing模塊能夠很好的解決這個問題。python

該模塊加入並不會影響程序的運行,不會報正式的錯誤,只有提醒。

typing模塊只有在python3.5以上的版本中才能夠使用,pycharm目前支持typing檢查segmentfault

1、typing模塊的做用

  1. 類型檢查,防止運行時出現參數和返回值類型不符合的問題。
  2. 做爲開發文檔附件說明,方便使用者調用時傳入和返回參數類型。

2、typing模塊的經常使用方式

先看實例代碼:函數

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))

運行結果:加密

([0, 1, 2, 3, 4], ('mark', 'mark', 'mark'), {'a': 183.1}, False)

說明:spa

  1. 在傳入參數時,經過「參數名:類型」的形式聲明參數的類型;
  2. 返回結果經過「->結果類型」的形式聲明結果的類型
  3. 在調用的時候若是參數的類型不正確pycharm會有提醒,但不會影程序的運行。
  4. 對於如list列表等,還能夠規定更加具體一些,如「->List[str]」,規定返回的是列表,而且元素是字符串。

如今對上面代碼進行修改,能夠看到pycharm背景變黃色區域,就是錯誤類型提醒:
圖片描述日誌

3、typing經常使用的類型

  1. int,long,float:整型,長整型,浮點型
  2. bool,str:布爾型,字符串類型
  3. List,Tuple,Dict,Set:列表,元組,字典,集合
  4. Iterable,Iterator:可迭代器,迭代器類型
  5. Generator:生成器類型

4、typing支持可能的多種類型

因爲python天生支持多態,迭代器中的元素可能有多種。code

代碼實例:blog

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'))

運行結果(跟不用typing無異):圖片

([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節-hashlib加密模塊
下一篇文章: Python模塊分析:第4節-logging日誌模塊
相關文章
相關標籤/搜索