Ako vrátiť viacero návratových hodnôt vo funkcii jazyka Python

obchodné

V jazyku C je vrátenie viacerých návratových hodnôt z funkcie pomerne zdĺhavé, ale v jazyku Python je to veľmi jednoduché.

Vrátiť oddelené čiarkami

V jazyku Python môžete jednoducho vrátiť zoznam reťazcov alebo čísel oddelených čiarkou.

Ako príklad definujte funkciu, ktorá vracia iba reťazec a číslo, ako je znázornené nižšie, pričom každé z nich je oddelené čiarkou za návratom.

def test():
    return 'abc', 100

V jazyku Python sa hodnoty oddelené čiarkou považujú za tuply bez zátvoriek, okrem prípadov, keď je to syntakticky nevyhnutné. Preto funkcia vo vyššie uvedenom príklade vráti tuple s každou hodnotou ako prvkom.

Čiarka je to, čo vytvára tuple, nie okrúhle zátvorky. Okrúhle zátvorky sa môžu vynechať, okrem prípadov prázdnych tuplov alebo ak je to potrebné na zabránenie syntaktickej nejednoznačnosti.
Built-in Types — Python 3.10.0 Documentation

Typom návratovej hodnoty je tuple.

result = test()

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

Každý prvok bude mať typ definovaný funkciou.

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

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

Chyba, ak zadáte index, ktorý presahuje počet definovaných návratových hodnôt.

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

Možno ho rozbaliť a viacero návratových hodnôt možno priradiť samostatným premenným.

a, b = test()

print(a)
# abc

print(b)
# 100

To isté platí, ak chcete zadať tri alebo viac návratových hodnôt namiesto dvoch.

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

a, b, c = test2()

print(a)
# abc

print(b)
# 100

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

Vracia zoznam.

[]Ak ho uzavriete pomocou tohto, návratová hodnota bude zoznam namiesto tuple.

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

result = test_list()

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