Python:类型注释,如何定义元组的元素?

2024-06-26 14:10:15 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个最小的案例。在

def foo(x:int, y:int) -> tuple: 
    return (x*y, y//2)

能够写出-> tuple(:int, :int)这不是一个有效的格式是非常诱人的。在这种情况下,是否有正确的方法,或者在python进一步沿着类型注释的道路前进之前,它仍然是一个灰色区域?在

编辑: 很明显可以做类似的事情

^{pr2}$

Tags: 方法区域编辑类型returnfoodef格式
2条回答

不,到目前为止还没有一种规范的方法来做到这一点。Python类型注释是相对较新的语言添加,因此它们仍然有一定的局限性。在

现在,您可以使用元组文本:

def foo(x:int, y:int) -> (int, int):
    return (x*y, y//2)

或者字符串文本,例如:

^{pr2}$

这两个都很清楚地表达了你的意图。在

现在有一种方法来注释这个案例:

from typing import Tuple
def foo(x:int, y:int) -> Tuple[int, int]: 
    return (x*y, y//2)

注意:python运行时不会抱怨-> (int, int),但根据pep484,它不是正确的类型注释。换句话说,如果您想使用类型提示创建小型语言,您可以使用它;但是python类型标准(pep484)不接受它。在

相关问题 更多 >