gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 20:34:29 26 4
gpt4 key购买 nike

在 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的意义何在?

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

最佳答案

这是function annotations .它可用于将附加信息附加到 argumentsreturn values的功能。这是一种说明必须如何使用函数的有用方式。函数注释存储在函数的 __annotations__ 属性中。

Use Cases (From documentation)

  • 提供打字信息

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

    • 参数和返回值的文档

python-3.5 可用于 Type Hints

关于python - Python 方法签名中的 ->(破折号大于箭头符号)是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31445728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com