前言
typing 是在 python 3.5 才有的模塊
前置學習
Python 類型提示:https://www.cnblogs.com/poloyy/p/15145380.html
常用類型提示
https://www.cnblogs.com/poloyy/p/15150315.html
類型別名
https://www.cnblogs.com/poloyy/p/15153883.html
NewType
https://www.cnblogs.com/poloyy/p/15153886.html
Callable
https://www.cnblogs.com/poloyy/p/15154008.html
TypeVar 泛型
https://www.cnblogs.com/poloyy/p/15154196.html
Any Type
- 一種特殊的類型是 Any
- 靜態類型檢查器會將每種類型都視為與 Any 兼容,將 Any 視為與每種類型兼容
小栗子
# Any from typing import Any a = None # type: Any a1 = [] # OK a2 = 2 # OK s = '' # type: str s1 = a # OK def foo(item: Any) -> int: # Typechecks; 'item' 可以是任意類型 print(item) return 1 foo(a) foo(a1) foo(a2) foo(s) foo(s1)
隱式使用 Any
def legacy_parser(text): ... return data # 上述寫法等價於下述寫法 # 所有沒有返回類型或參數類型的函數將隱式默認使用 Any def legacy_parser(text: Any) -> Any: ... return data
Union
https://www.cnblogs.com/poloyy/p/15170066.html
Optional
https://www.cnblogs.com/poloyy/p/15170297.html
