首页 > 其他 > 详细

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

时间:2017-08-09 15:04:35      阅读:299      评论:0      收藏:0      [点我收藏+]

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

 

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

原文:http://www.cnblogs.com/snsdzjlz320/p/7307551.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!