zoukankan      html  css  js  c++  java
  • Python3 函数注解

    Python3提供一种语法,用于为函数声明中的参数和返回值附加元数据。下面的例子是注解后的版本,特点在第一行:

     1 def clip(text : str, max_len : 'int > 0' = 80) -> str:
     2     """在max_len前面或后面的第一个空格处截断文本 
     3     """
     4     end = None
     5     if len(text) > max_len:
     6         space_before = text.rfind(' ', 0, max_len)
     7         if space_before >= 0
     8             end = space_before
     9         else:
    10             space_after = text.rfind(' ', max_len)       # 返回字符串最后一次出现的位置,没有则返回-1 
    11             if space_after >= 0:
    12                 end = space_after
    13     if end is None:        # 没找到空格
    14         end = len(text)
    15     return text[:end].rstrip()        # 删除字符串末尾指定的字符串,默认为空格

    1.函数声明中的各个参数可以在:后增加注解表达式。

    2.如果参数由默认值,注解放在参数名和 = 号之间。

    3.如果注解有返回值,在 ) 和函数末尾的:之间增加 -> 和一个表达式。那个表达式可以是任何类型。注解中最常用的类型是类(如 str 或 int)和字符串(如 'int > 0')。

    注解不会做任何处理,只是存储在函数的__annotations__属性(一个字典)中:

    >>> from clip_annot import clip
    >>> clip._annotations__
    {'text' : <class 'str'>, 'max_len' : 'int > 0', 'return' : <class 'str'>}

    'return'键保存的是返回值注解,即函数声明里以 -> 标记的部分。

    Python对注解所做的唯一的事情是,把他们存储在函数的__annotations__属性里。仅此而已,Python不做检查,不做强制,不做验证,什么操作都不做。换句话,注解对Python解释器没任何意义。注解只是元数据,可以供IDE、框架和装饰器等工具使用。

  • 相关阅读:
    c语言 数组名是常量指针
    c语言 动态数组
    c语言 指针的值
    c语言 &取地址运算符的理解
    c语言 指针与地址的区别
    c语言 指针与数组
    linux cheese摄像机工具在window电脑上显示
    C#实现简单的 Ping 的功能,用于测试网络是否已经联通
    c# 扫描局域网IP列表的几种方法
    c# 遍历局域网计算机(电脑)获取IP和计算机名称
  • 原文地址:https://www.cnblogs.com/keye/p/8572353.html
Copyright © 2011-2022 走看看