Си хэл дээр функцээс олон буцах утгыг буцаах нь нэлээд уйтгартай байдаг бол Python дээр үүнийг хийхэд маш хялбар байдаг.
Буцах нь таслалаар тусгаарлагдсан
Python дээр та зүгээр л таслалаар тусгаарлагдсан мөр эсвэл тоонуудын жагсаалтыг буцаах боломжтой.
Жишээ болгон зөвхөн мөр болон тоог буцаадаг функцийг доор харуулсны дагуу тус бүрийг буцаалтын дараа таслалаар тусгаарлана.
def test(): return 'abc', 100
Python хэл дээр таслалаар тусгаарлагдсан утгуудыг синтаксийн хувьд зайлшгүй шаардлагатай тохиолдолд хаалтгүй залгуур гэж үздэг. Иймд дээрх жишээн дээрх функц нь утга бүрийг элемент болгон tuple буцаана.
Энэ нь дугуй хаалт биш харин таслал үүсгэдэг. Бөөрөнхий хаалтуудыг орхиж болно, зөвхөн хоосон залгуураас бусад тохиолдолд эсвэл үг хэллэгийн тодорхой бус байдлаас зайлсхийхийн тулд шаардлагатай үед.
Built-in Types — Python 3.10.0 Documentation
Буцах утгын төрөл нь tuple юм.
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]
Жагсаалтыг буцаана.
[]
Хэрэв та үүнийг хавсаргавал буцаах утга нь tuple биш жагсаалт байх болно.
def test_list(): return ['abc', 100] result = test_list() print(result) print(type(result)) # ['abc', 100] # <class 'list'>