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

Posted Jelly_lyj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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">])

 

以上是关于[PY3]——函数——函数注解 | 实现类型检查功能的主要内容,如果未能解决你的问题,请参考以下文章

Python类型注解

python 注解

Python基础面试题

python函数原型定义那行有个箭头是啥语法?比如

AbstractProcessor: 利用注解动态生成代码

Java8 新特性 -- Lambda表达式:函数式接口方法的默认实现和静态方法方法引用注解类型推测Optional类Stream类调用JavaScriptBase64