当前位置: 首页 > 面试题库 >

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

林弘文
2023-03-14
问题内容

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

->在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呢?

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


问题答案:

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

用例来自文档

  • 提供打字信息

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

    • 参数和返回值的文档

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



 类似资料:
  • 我知道<代码> 代码如下:

  • 问题内容: 操作数是什么意思,更具体地说是Python? 有人可以解释如何阅读此代码段吗? 问题答案: 更新的答案 在问题的上下文中,我们正在处理伪代码,但是从Python 3.8开始 ,它实际上是一个有效的运算符,它允许在表达式中分配变量: 有关更多详细信息,请参见PEP 572。 原始答案 您发现的是 伪代码 伪代码 是计算机程序或其他算法的工作原理的非正式高级描述。 实际上是赋值运算符。在P

  • 问题内容: 在Swift函数签名中,参数after意味着什么?更具体地说,这是否意味着需要在传递参数之前将其解开,或者在传递参数时(自动)将其解开。这是一个示例: 在这种情况下,该函数是UIButton的目标,因此无论发生什么情况,它都会自动发生。 我的想法是,这意味着您可以期待一个未包装的对象,因此您无需尝试对其进行包装。 问题答案: 这不是完全重复的- 函数签名中 隐式展开的可选 变量 有一些

  • 问题内容: 我知道出于文档目的注释中的含义,但除此之外又意味着什么?(我通常只会在Google上搜索,但结果中会显示每个非字母符号) 问题答案: 该符号表示Java注释。Java注释的作用是,它为变量,方法,类,接口或其他语言元素添加了特殊的属性。(可以在声明注释时进行配置)。向某事物添加注释时,程序的其他部分可以检查某事物是否具有注释。然后,它可以使用此信息来完成所需的任何工作。 让我举几个例子

  • 问题内容: 在Python中像在C中一样具有特殊含义吗?我在Python Cookbook中看到了这样的函数: 你能向我解释一下还是指出我在哪里可以找到答案(Google将解释为通配符,因此我找不到令人满意的答案)。 问题答案: 假设知道位置和关键字参数是什么,下面是一些示例: 范例1: 如你在上面的示例中所见,函数签名中仅包含参数。由于d和k不存在,因此将它们放入字典。该程序的输出为: 范例2:

  • 问题内容: 例如: 这个标志到底是什么意思? 问题答案: 是子组合器,有时会误称为直接后代组合器。1个 这意味着选择器仅选择 直接嵌套 在内 的段落,而不选择嵌套 在 其 内 的任何段落。 插图: 选择了什么,没有选择什么: 选择 这直接位于内部的,因此在这两个元素之间建立了父子关系。 没有选择 这是由包含内,而不是本身。尽管这是的后代,但它不是孩子。是孙子 因此,虽然不匹配此元素,但将使用后代组