Python函数返回多个值的类型提示

34

我如何使用Python类型提示编写返回多个返回值的函数声明?

下面的语法是否允许?

def greeting(name: str) -> str, List[float], int :

   # do something

   return a,b,c

1
实际上,Python函数从来不会返回“多个值”。你在这里返回的是一个“元组”。 - bruno desthuilliers
3
可能是如何注释多个返回值的类型?的重复问题。 - Georgy
3个回答

47
自从Python 3.9版本以及PEP 585的接受,你应该使用内置的tuple类来为元组进行类型提示。
你可以使用typing.Tuple类型提示(用于指定元组内容的类型,如果不需要的话,也可以使用内置类tuple):
from typing import Tuple

def greeting(name: str) -> Tuple[str, List[float], int]:
    # do something
    return a, b, c

我该如何在使用问候函数的单行中为变量添加类型提示? - Mukul Anand

12

在Python中,多个返回值被作为元组返回,元组的类型提示不是tuple类,而是typing.Tuple

import typing

def greeting(name: str) -> typing.Tuple[str, List[float], int]:

    # do something

    return a,b,c

5

现在支持在内置的tuplelist上进行索引。

def greeting(name: str) -> tuple[str, list[float], int]:
    pass

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接