U C-u je vraćanje više povratnih vrijednosti iz funkcije prilično zamorno, ali u Pythonu je to vrlo jednostavno za napraviti.
Povratak odvojen zarezima
U Pythonu možete jednostavno vratiti popis nizova ili brojeva odvojenih zarezima.
Kao primjer, definirajte funkciju koja vraća samo niz i broj kao što je prikazano u nastavku, pri čemu je svaki odvojen zarezom nakon povrata.
def test(): return 'abc', 100
U Pythonu se vrijednosti odvojene zarezima smatraju torkama bez zagrada, osim ako je to sintaktički neophodno. Stoga će funkcija u gornjem primjeru vratiti tuple sa svakom vrijednošću kao elementom.
Zarez je taj koji stvara torku, a ne okrugle zagrade. Okrugle zagrade mogu se izostaviti, osim u slučaju praznih torki ili kada je potrebno da se izbjegne sintaktička dvosmislenost.
Built-in Types — Python 3.10.0 Documentation
Tip povratne vrijednosti je tuple.
result = test() print(result) print(type(result)) # ('abc', 100) # <class 'tuple'>
Svaki element bit će tipa definiranog funkcijom.
print(result[0]) print(type(result[0])) # abc # <class 'str'> print(result[1]) print(type(result[1])) # 100 # <class 'int'>
Pogreška ako navedete indeks koji premašuje broj povratnih vrijednosti koji ste definirali.
# print(result[2]) # IndexError: tuple index out of range
Može se raspakirati i višestruke povratne vrijednosti mogu se dodijeliti zasebnim varijablama.
a, b = test() print(a) # abc print(b) # 100
Isto vrijedi ako želite navesti tri ili više povratnih vrijednosti umjesto samo dvije.
def test2(): return 'abc', 100, [0, 1, 2] a, b, c = test2() print(a) # abc print(b) # 100 print(c) # [0, 1, 2]
Vraća popis.
[]
Ako ga priložite s ovim, povratna vrijednost bit će popis umjesto torke.
def test_list(): return ['abc', 100] result = test_list() print(result) print(type(result)) # ['abc', 100] # <class 'list'>