У Ц-у је враћање више повратних вредности из функције прилично заморно, али у Питхону је то врло лако учинити.
Повратак одвојен зарезима
У Питхон-у можете једноставно вратити листу стрингова или бројева раздвојених зарезима.
Као пример, дефинишите функцију која враћа само низ и број као што је приказано испод, са сваким одвојеним зарезом након повратка.
def test(): return 'abc', 100
У Питхон-у, вредности раздвојене зарезима се сматрају торкама без заграда, осим тамо где је то синтаксички неопходно. Стога ће функција у горњем примеру вратити тупле са сваком вредношћу као елементом.
Зарез је тај који ствара торку, а не округле заграде. Округле заграде се могу изоставити, осим у случају празних торки или када је то неопходно да би се избегла синтаксичка двосмисленост.
Built-in Types — Python 3.10.0 Documentation
Тип повратне вредности је тупле.
result = test() print(result) print(type(result)) # ('abc', 100) # <class 'tuple'>
Сваки елемент ће бити типа који дефинише функција.
print(result[0]) print(type(result[0])) # abc # <class 'str'> print(result[1]) print(type(result[1])) # 100 # <class 'int'>
Грешка ако наведете индекс који премашује број повратних вредности који сте дефинисали.
# print(result[2]) # IndexError: tuple index out of range
Може се распаковати и вишеструке повратне вредности могу бити додељене засебним променљивим.
a, b = test() print(a) # abc print(b) # 100
Исто важи ако желите да наведете три или више повратних вредности уместо само две.
def test2(): return 'abc', 100, [0, 1, 2] a, b, c = test2() print(a) # abc print(b) # 100 print(c) # [0, 1, 2]
Враћа листу.
[]
Ако га приложите са овим, повратна вредност ће бити листа уместо торке.
def test_list(): return ['abc', 100] result = test_list() print(result) print(type(result)) # ['abc', 100] # <class 'list'>