[PY3]——函数——函数注解 | 实现类型检查功能

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

 

posted @ 2017-08-09 14:29  Jelly_lyj  阅读(200)  评论(0编辑  收藏  举报