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