在python方法的末尾有一个->
或大于号的符号,我不确定它的意思。人们可能也称它为箭头。
以下是示例:
@property
def get_foo(self) -> Foo:
return self._foo
其中self._foo
是Foo的一个实例。
我的猜测是它是某种静态类型声明,告诉解释器self._foo
是Foo类型。但是当我对此进行测试时,如果self._foo
不是Foo的实例,则不会发生异常。另外,如果self._foo
的类型不是Foo,那么假设它是int
,那么type(SomeClass.get_foo())
会返回int
。那么,-> Foo
是什么意思?
这个概念难以查找,因为它是一个没有通用名称的符号,而“箭头”一词具有误导性。
答案 0 :(得分:19)
这是function annotations。可以将附加信息附加到arguments或return values个函数。这是说明如何使用函数的有用方法。
函数注释存储在函数的__annotations__
属性中。
Use Cases (From documentation)
提供输入信息
其他信息
从python-3.5
开始,它可以用于Type Hints