函数注解(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">])