Python方法签名中的->(大于-破折号-箭头符号)是什么意思?[重复]

发布于 2021-01-29 15:06:53

这个问题已经在这里有了答案

->在Python函数定义中是什么意思? (8个答案)

2年前关闭。

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

这是示例:

@property
def get_foo(self) -> Foo:
    return self._foo

self._fooFoo的实例在哪里。

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

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

关注者
0
被浏览
82
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

    用例来自文档

    • 提供打字信息

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

      • 参数和返回值的文档

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看