Python 3.X(仅)还泛化了函数定义,以允许将参数和返回值与对象值一起注释以
用于扩展。
用其META数据进行解释,以更明确地了解函数值。
注释的编码方式是:value
在参数名称之后,默认值之前以及->value
在参数列表之后。
它们被收集到__annotations__
函数的属性中,但Python本身并未将其视为特殊的:
>>> def f(a:99, b:'spam'=None) -> float:
... print(a, b)
...
>>> f(88)
88 None
>>> f.__annotations__
{'a': 99, 'b': 'spam', 'return': <class 'float'>}
来源:Python Pocket Reference,第五版
例:
的 typeannotations
模块提供了一组用于Python代码的类型检查和类型推断的工具。它还提供了一组用于注释功能和对象的类型。
这些工具主要设计用于静态分析器,如linter,代码完成库和IDE。另外,提供了用于进行运行时检查的装饰器。在Python中,运行时类型检查并不总是一个好主意,但在某些情况下,它可能非常有用。
https://github.com/ceronman/typeannotations
键入如何帮助编写更好的代码
键入可以帮助您进行静态代码分析,以在将代码发送到生产环境之前捕获类型错误,并防止出现一些明显的错误。有些工具例如mypy,可以将其添加到工具箱中,作为软件生命周期的一部分。mypy可以通过部分或完全针对您的代码库运行来检查类型是否正确。mypy还可以帮助您检测错误,例如从函数返回值时检查None类型。键入有助于使代码更整洁。您可以在不增加性能成本的情况下使用类型,而不必使用注释在文档字符串中指定类型的方式来记录代码。
干净的Python:Python中的优雅编码ISBN:ISBN-13(pbk):978-1-4842-4877-5
PEP 526-变量注释的语法
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html