在Python方法签名中, - >(大于箭头符号)是什么意思?

mod*_*tos 25 python python-3.x

->python方法的末尾有一个或大于符号的符号,我不确定它的含义.人们可能也称它为箭头.

这是一个例子:

@property
def get_foo(self) -> Foo:
    return self._foo
Run Code Online (Sandbox Code Playgroud)

其中self._foo是Foo的一个实例.

我的猜测是它是某种静态类型声明,告诉解释器self._foo类型为Foo.但是当我测试这个时,如果self._foo不是Foo的一个实例,就不会发生异常.此外,如果self._foo是Foo以外的类型int,那么假设它是一个,然后type(SomeClass.get_foo())返回int.那么,有什么意义-> Foo呢?

这个概念很难查找,因为它是一个没有通用名称的符号,术语"箭头"具有误导性.

sty*_*ane 25

这是功能注释.它可以用于将附加信息附加到参数或函数的返回值.这是说明如何使用函数的有用方法.函数注释存储在函数的__annotations__属性中.

用例(来自文档)

  • 提供打字信息

    • 类型检查
    • 让IDE显示函数期望和返回的类型
    • 函数重载/泛型函数
    • 外语桥梁
    • 适应
    • 谓词逻辑功能
    • 数据库查询映射
    • RPC参数编组
  • 其他信息

    • 参数和返回值的文档

python-3.5它可以用于类型提示

  • 这里要添加的一件好事是它们是否改变了程序的功能或者它们只是注释?如果您不遵循注释中的规则,您的程序会抛出错误吗? (6认同)
  • 我的心被彻底震撼了! (2认同)
  • 答案中的例子会很好 (2认同)