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、框架和装饰器等工具使用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)