Kako vrniti več vrnjenih vrednosti v funkciji Python

Posel

V jeziku C je vračanje več vrnjenih vrednosti iz funkcije precej zamudno, v Pythonu pa je to zelo enostavno.

Vračilo, ločeno z vejicami

V Pythonu lahko preprosto vrnete seznam nizov ali številk, ločenih z vejico.

Kot primer definirajte funkcijo, ki vrne samo niz in število, kot je prikazano spodaj, pri čemer sta obe vrstici ločeni z vejico za vrnitvijo.

def test():
    return 'abc', 100

V Pythonu se vrednosti, ločene z vejico, štejejo za sklope brez oklepajev, razen kadar je to sintaktično potrebno. Zato bo funkcija v zgornjem primeru vrnila tuple z vsako vrednostjo kot elementom.

Za tvorbo dvojice je pomembna vejica in ne okrogli oklepaji. Okrogli oklepaji se lahko izpustijo, razen v primeru praznih nizov ali kadar je to potrebno za preprečitev sintaktične dvoumnosti.
Built-in Types — Python 3.10.0 Documentation

Tip vrnjene vrednosti je tuple.

result = test()

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

Vsak element bo tipa, ki ga določa funkcija.

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

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

Napaka, če določite indeks, ki presega število opredeljenih vračilnih vrednosti.

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

Lahko ga razpakirate in več vrnjenih vrednosti dodelite ločenim spremenljivkam.

a, b = test()

print(a)
# abc

print(b)
# 100

Enako velja, če želite določiti tri ali več povratnih vrednosti namesto samo dveh.

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

a, b, c = test2()

print(a)
# abc

print(b)
# 100

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

Vrne seznam.

[]Če ga obkrožite s to, bo vrnjena vrednost seznam in ne tuple.

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

result = test_list()

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