zoukankan      html  css  js  c++  java
  • [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">])
  • 相关阅读:
    Swift 网络请求数据与解析
    第三方-Swift2.0后Alamofire的使用方法
    java异常处理机制throws
    eclipse导入不到嵌套的项目
    java异常处理机制Exception
    在eclipse中查找指定文件
    mysql查询count
    【待解决】An internal error occurred during: "Launching baiduTest1". java.lang.NullPointerException
    TestNG升级
    eclipse安装TestNG插件
  • 原文地址:https://www.cnblogs.com/snsdzjlz320/p/7307551.html
Copyright © 2011-2022 走看看