Python-函数注解

在Python3 中提供了一种句法,用于为函数声明中的参数和返回值附加元数据。下面是添加了注解后的一个函数示例:

def clip(text:str, max_len:'int > 0'=80) ->str:  # 有注解的函数声明
    """在max_len前面或后面的第一个空格处截断文本"""
    end = None
    if len(text) > max_len:
        space_before = text.find(' ', 0, max_len)
        if space_before >= 0:
            end = space_before
        else:
            space_after = text.find(' ', max_len)
            if space_after >= 0:
                end = space_after
    if end is None:  # 没找到空格
        end = len(text)
    return text[:end].strip()

函数声明中的各个参数可以在:之后增加注解表达式。如果参数有默认值,注解放在参数名和=号之间。如果想注解返回值  在)和函数声明末尾的:之间添加 ->和一个表达式。这个表达式可以是任何类型;注解中最常用的类型是类(如str和int)和字符串(如'int > 0'),在上述示例中,max_len参数的注解用的就是字符串。 

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

我们可以将函数的__annotations__属性打印出来,结果如下:

{'text': <class 'str'>, 'max_len': 'int > 0', 'return': <class 'str'>}

其中'return'键保存的是返回值的注解,即上述示例中函数声明里以 '->' 标记的部分。Python对注解所做的唯一的事情是,把它们存储在函数的__annotations__属性里。仅此而已,Python不做检查,不做强制、不做验证,什么操作都不做。换句话说,注解对Python解释器没有任何意义。注解只是元数据,可以供IDE、框架和装饰器等工具使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值