文章目录 函数注解 变量注解和类型注解 额外示例: NewType: 泛型注解(容器): Notes: 函数注解 Python 3 提供了一种句法,用于为函数声
文章目录
- 函数注解
- 变量注解和类型注解
- 额外示例:
- NewType:
- 泛型注解(容器):
- Notes:
函数注解
Python 3 提供了一种句法,用于为函数声明中的参数和返回值附加元数据。
https://docs.python.org/zh-cn/3/library/typing.html
变量注解和类型注解
import math
def add(x: float, y: float) -> None:
# 除了函数注解,您当然可以为某个变量使用类型注解:(类似于kotlin风格写法)
pi: float = 3.142
print(pi)
print(x+y)
if __name__=="__main__":
add(1,2)
''' Type Comments[类型注解]:对位置比较严格: '''
def circumference(radius):
#type: (float) -> float
return 2 * math.pi * radius
额外示例:
有注解的 clip 函数:
def clip(text:str, max_len:'int > 0'=80) -> str:
➊
"""在max_len前面或后面的第一个空格处截断文本
"""
end = None
if len(text) > max_len:
space_before = text.rfind(' ', 0, max_len)
if space_before >= 0:
end = space_before
else:
space_after = text.rfind(' ', max_len)
if space_after >= 0:
end = space_after
if end is None: # 没找到空格
end = len(text)
return text[:end].rstrip()
NewType:
NewType(新类型名,类型名要对应的类型)
泛型注解(容器):
容器类型混用错误警告
Notes:
函数声明中的各个参数可以在 : 之后增加注解表达式。如果参数有默认值,注解放在参数名和 = 号之间。如果想注解返回值,在’ ) '和函数声明末尾的 : 之间添加 -> 和一个表达式。
那个表达式可以是任何类型解中最常用的类型是类(如 str 或 int)和字符串(如 ‘int >0’)。
在示例 中,max_len 参数的注解用的是字符串。
Python 对注解所做的唯一的事情是,把它们存储在函数的
annotations 属性里。
仅此而已,Python 不做检查、不做强制、不做验证,什么操作都不做。
换句话说,注解对 Python 解释器没有任何意义。
注解只是元数据,可以供 IDE、框架和装饰器等工具使用。