Як вярнуць некалькі вяртаемых значэнняў у функцыі Python

Бізнэс

У C вяртанне некалькіх вяртаемых значэнняў з функцыі даволі стомна, але ў Python гэта зрабіць вельмі проста.

Вяртанне праз коскі

У Python вы можаце проста вярнуць падзелены коскамі спіс радкоў або лікаў.

У якасці прыкладу вызначыце функцыю, якая вяртае толькі радок і лік, як паказана ніжэй, кожная з якіх пасля вяртання будзе падзелена коскай.

def test():
    return 'abc', 100

У Python значэнні, падзеленыя коскамі, лічацца картэжамі без дужак, за выключэннем выпадкаў, калі гэта сінтаксічна неабходна. Такім чынам, функцыя ў прыкладзе вышэй будзе вяртаць картэж з кожным значэннем у якасці элемента.

Гэта коска, якая стварае картэж, а не круглыя ​​дужкі. Круглыя ​​дужкі можна апускаць, за выключэннем выпадку пустых картэжаў або калі гэта неабходна, каб пазбегнуць сінтаксічнай мнагазначнасці.
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