Python 注释 : difference between Tuple and ()

标签 python annotations

自 python 3.6(或 3.4?我不记得了)以来,我们可以注释一个函数。例如:

def getVersion() -> str:

现在当一个函数返回一个元组时会发生什么?我们可以这样做:

def func() -> tuple:

但是如果我们知道元组是两个整数的元组呢?我在这里阅读:How to annotate types of multiple return values?我们可以做到这一点:

def func() -> Tuple[int, int]

但是需要引入typing模块。

我也试过:

def func() -> (int, int):

而且它不会崩溃。

什么是正确的方法?

最佳答案

注解可以用于任何你喜欢的地方:它们是任意的 Python 表达式(不过,关于在未来的 Python 版本中打破这一点的讨论正在进行中)。

这就是为什么 (int, int) 用作注释。 (1 + 3) 也可以用作注释。

一些注释被 mypy 和其他 python 类型检查器理解为 type 注释:Tuple[Int, Int] 就是这样一个注释.

简而言之:使用 Tuple[int, int]

关于Python 注释 : difference between Tuple and (),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47163048/

相关文章:

python argparse : allow unregistered arguments

python - len() 的成本和 pep8 关于序列空检查的建议

python - hamcrest.contains_inanyorder 的几乎无用的断言输出应用于 unittest.mock.Mock.mock_calls

java - @GeneratedValue 注解

java - 如何删除 JDefinedClass 上的注释

java - Java 的@OverridingMethodMustCallSuper 发生了什么?

python - 如何将非模型字段添加到 DRF 的序列化程序响应字典中?

python - 使用 Python 通过 Internet 传输数据的最轻量级方法是什么?

java - 通过反射识别 JAX-RS 上的 HTTP 动词

Java - 将带有注释的类传递给泛型方法