En C, devolver varios valores de retorno dunha función é bastante tedioso, pero en Python, é moi sinxelo de facer.
Retorno separado por comas
En Python, pode simplemente devolver unha lista de cadeas ou números separados por comas.
Como exemplo, define unha función que só devolve unha cadea e un número como se mostra a continuación, separando cada un por coma despois do retorno.
def test(): return 'abc', 100
En Python, os valores separados por comas considéranse tuplas sen parénteses, agás cando sexa sintácticamente necesario. Polo tanto, a función do exemplo anterior devolverá unha tupla con cada valor como elemento.
É a coma a que crea a tupla, non os corchetes. Pódense omitir os corchetes, agás no caso de tuplas baleiras ou cando sexa necesario para evitar ambigüidades sintácticas.
Built-in Types — Python 3.10.0 Documentation
O tipo de valor de retorno é unha tupla.
result = test() print(result) print(type(result)) # ('abc', 100) # <class 'tuple'>
Cada elemento será do tipo definido pola función.
print(result[0]) print(type(result[0])) # abc # <class 'str'> print(result[1]) print(type(result[1])) # 100 # <class 'int'>
Produciuse un erro se especifica un índice que supera o número de valores de retorno que definiu.
# print(result[2]) # IndexError: tuple index out of range
Pódese desempaquetar e asignar varios valores de retorno a variables separadas.
a, b = test() print(a) # abc print(b) # 100
O mesmo aplícase se quere especificar tres ou máis valores de retorno en lugar de só dous.
def test2(): return 'abc', 100, [0, 1, 2] a, b, c = test2() print(a) # abc print(b) # 100 print(c) # [0, 1, 2]
Devolve unha lista.
[]
Se o encerra con isto, o valor de retorno será unha lista en lugar dunha tupla.
def test_list(): return ['abc', 100] result = test_list() print(result) print(type(result)) # ['abc', 100] # <class 'list'>