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'>