Cómo devolver múltiples valores de retorno en una función de Python

Negocio

En C, devolver múltiples valores de retorno de una función es bastante tedioso, pero en Python, es muy fácil de hacer.

Retorno separado por comas

En Python, puede simplemente devolver una lista separada por comas de cadenas o números.

Como ejemplo, defina una función que sólo devuelva una cadena y un número como se muestra a continuación, con cada uno separado por una coma después del retorno.

def test():
    return 'abc', 100

En Python, los valores separados por comas se consideran tuplas sin paréntesis, excepto cuando es sintácticamente necesario. Por lo tanto, la función del ejemplo anterior devolverá una tupla con cada valor como elemento.

Es la coma la que crea la tupla, no los corchetes. Los corchetes pueden omitirse, excepto en el caso de las tuplas vacías o cuando sea necesario para evitar la ambigüedad sintáctica.
Built-in Types — Python 3.10.0 Documentation

El tipo del valor de retorno es una tupla.

result = test()

print(result)
print(type(result))
# ('abc', 100)
# <class 'tuple'>

Cada elemento será del tipo definido por la función.

print(result[0])
print(type(result[0]))
# abc
# <class 'str'>

print(result[1])
print(type(result[1]))
# 100
# <class 'int'>

Error si se especifica un índice que excede el número de valores de retorno definidos.

# print(result[2])
# IndexError: tuple index out of range

Se puede desempacar y asignar múltiples valores de retorno a variables separadas.

a, b = test()

print(a)
# abc

print(b)
# 100

Lo mismo ocurre si quiere especificar tres o más valores de retorno en lugar de sólo dos.

def test2():
    return 'abc', 100, [0, 1, 2]

a, b, c = test2()

print(a)
# abc

print(b)
# 100

print(c)
# [0, 1, 2]

Devuelve una lista.

[]Si lo encierra con esto, el valor de retorno será una lista en lugar de una tupla.

def test_list():
    return ['abc', 100]

result = test_list()

print(result)
print(type(result))
# ['abc', 100]
# <class 'list'>
Copied title and URL