typing模塊

1、引言

  • 前言:不少人在寫完代碼一段時間後回過頭看代碼,極可能忘記了本身寫的函數須要傳什麼參數,返回什麼類型的結果,就不得不去閱讀代碼的具體內容,下降了閱讀的速度,加上Python自己就是一門弱類型的語言,這種現象就變得更加的嚴重,而typing這個模塊很好的解決了這個問題。
    系列文章

2、typing模塊的做用

  1. 類型檢查,防止運行時出現參數和返回值類型不符合。app

  2. 做爲開發文檔附加說明,方便使用者調用時傳入和返回參數類型。函數

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

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

3、使用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


print(add(5, "hhhh", 2.3, False))
([0, 1, 2, 3, 4], ('hhhh', 'hhhh', 'hhhh'), {'a': 2.3}, False)
  • 在傳入參數時經過"參數名:類型"的形式聲明參數的類型;開發

  • 返回結果經過"-> 結果類型"的形式聲明結果的類型。文檔

  • 在調用的時候若是參數的類型不正確pycharm會有提醒,但不會影響程序的運行。字符串

  • 對於如list列表等,還能夠規定得更加具體一些,如:"-> List[str]」,規定返回的是列表,而且元素是字符串。pycharm

from typing import List


def func(a: int, string: str) -> List[int or str]:  # 使用or關鍵字表示多種類型
    list1 = []
    list1.append(a)
    list1.append(string)
    return list1

4、typing經常使用類型

  • int、long、float: 整型、長整形、浮點型string

  • bool、str: 布爾型、字符串類型it

  • List、 Tuple、 Dict、 Set:列表、元組、字典、集合

  • Iterable、Iterator:可迭代類型、迭代器類型

  • Generator:生成器類型

相關文章
相關標籤/搜索