Како вратити више повратних вредности у Питхон функцији

Бусинесс

У Ц-у је враћање више повратних вредности из функције прилично заморно, али у Питхону је то врло лако учинити.

Повратак одвојен зарезима

У Питхон-у можете једноставно вратити листу стрингова или бројева раздвојених зарезима.

Као пример, дефинишите функцију која враћа само низ и број као што је приказано испод, са сваким одвојеним зарезом након повратка.

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'>
Copied title and URL