En C, retornar diversos valors de retorn d’una funció és bastant tediós, però a Python, és molt fàcil de fer.
Tornar separat per comes
A Python, simplement podeu tornar una llista de cadenes o números separats per comes.
Com a exemple, definiu una funció que només retorni una cadena i un número com es mostra a continuació, amb cadascun separat per una coma després del retorn.
def test(): return 'abc', 100
A Python, els valors separats per comes es consideren tuples sense parèntesis, excepte quan sigui necessari sintàcticament. Per tant, la funció de l’exemple anterior retornarà una tupla amb cada valor com a element.
És la coma la que crea la tupla, no els claudàtors. Els claudàtors es poden ometre, excepte en el cas de tuples buides o quan sigui necessari per evitar l’ambigüitat sintàctica.
Built-in Types — Python 3.10.0 Documentation
El tipus de valor de retorn és una tupla.
result = test() print(result) print(type(result)) # ('abc', 100) # <class 'tuple'>
Cada element serà del tipus definit per la funció.
print(result[0]) print(type(result[0])) # abc # <class 'str'> print(result[1]) print(type(result[1])) # 100 # <class 'int'>
Error si especifiqueu un índex que supera el nombre de valors de retorn que heu definit.
# print(result[2]) # IndexError: tuple index out of range
Es pot desempaquetar i es poden assignar diversos valors de retorn a variables separades.
a, b = test() print(a) # abc print(b) # 100
El mateix s’aplica si voleu especificar tres o més valors de retorn en lloc de només dos.
def test2(): return 'abc', 100, [0, 1, 2] a, b, c = test2() print(a) # abc print(b) # 100 print(c) # [0, 1, 2]
Retorna una llista.
[]
Si ho adjunteu amb això, el valor de retorn serà una llista en lloc d’una tupla.
def test_list(): return ['abc', 100] result = test_list() print(result) print(type(result)) # ['abc', 100] # <class 'list'>