Python注释:元组和()之间的区别

时间:2017-11-07 16:37:04

标签: 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):

它并没有崩溃。

什么是正确的方法?

1 个答案:

答案 0 :(得分:4)

注释可以用于任何你喜欢的东西:它们是任意的Python表达式(不过有关于在未来的Python版本中打破这种情况的讨论)。

这就是(int, int)作为注释的原因。 (1 + 3)也可用作注释。

mypy和其他python类型检查器将某些注释理解为 type 注释:Tuple[Int, Int]就是这样的注释。

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