这是一个最小的例子。
def foo(x:int, y:int) -> tuple:
return (x*y, y//2)
能够编写不是有效格式的 -> tuple(:int, :int)
是非常诱人的。在这种情况下是否有正确的方法,或者在 python 进一步沿着类型注释道路移动之前它仍然是一个灰色区域?
编辑: 显然可以做类似的事情
def bar(x, y) -> ((str, int), (str, int)):
return ("%s+%s" %(x,y), x+y), ("%s-%s" %(x,y), x-y)
最佳答案
现在有一种方法可以注释这种情况:
from typing import Tuple
def foo(x:int, y:int) -> Tuple[int, int]:
return (x*y, y//2)
注意:python 运行时不会提示 -> (int, int)
,但根据 PEP 484,它不是正确的类型注释。换句话说,如果你想为自己的目的使用类型提示创建你的迷你语言;但它不被 python 类型标准 (PEP 484) 接受。
关于Python:类型注释,如何定义元组的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28242081/