函式註解(Function Annotations)——> 可以在定義函式的時候對引數和返回值新增註解
寫函式註解
#平時我們使用help()可以檢視一個函式的說明,我們自己寫的函式也可以提供這樣的說明 #第一種方式:直接在函式內 '''寫文字''' def add(x,y): '''x+y @:param x int @:param y int @return int ''' return x+y #print(help(add)) Help on function add in module __main__: add(x, y) x+y @:param x int @:param y int @return int (END) # 第二種方式:更常用,是python中的函式註解語法 # 引數:型別 或 引數:"說明文字" -> 返回值型別
def add(x:int,y:"It's a int") ->int: return x+y() print(help(add)) Help on function add in module __main__: add(x:int, y:"It's a int") -> int (END)
檢視函式註解
function.__annotations__
# function.__annotations__ print(sum.__annotations__) #{'return': <class 'int'>, 'lst': typing.List<~T>[int]}
inspect.signature
# inspect.signature import inspect # 獲取函式註解 sig=inspect.signature(add) print(sig) #(x:int, y:"It's a int") -> int # 獲取函式引數(其輸出是個有序字典) print(sig.parameters) #OrderedDict([('x', <Parameter "x:int">), ('y', <Parameter "y:"It's a int"">)]) ## 獲取指定引數註解 ## # 法1: print(sig.parameters['x']) #x:int # 法2: print(sig.parameters['x'].annotation) #即利用parameters輸出的有序字典來訪問 #<class 'int'> ## 獲取返回值註解 ## print(sig.return_annotation) #<class 'int'> print(sig.parameters.values()) #odict_values([<Parameter "x:int">, <Parameter "y:int">])