Jinsi ya kurudisha maadili mengi ya kurudi kwenye kazi ya Python

Biashara

Katika C, kurudisha maadili mengi kutoka kwa chaguo la kukokotoa ni ya kuchosha sana, lakini katika Python, ni rahisi sana kufanya.

Kurudi kumetenganishwa na koma

Katika Python, unaweza kurudisha tu orodha iliyotenganishwa kwa koma ya kamba au nambari.

Kama mfano, fafanua chaguo la kukokotoa ambalo hurejesha tu mfuatano na nambari kama inavyoonyeshwa hapa chini, na kila moja ikitenganishwa na koma baada ya kurejesha.

def test():
    return 'abc', 100

Katika Python, maadili yaliyotenganishwa kwa koma huchukuliwa kuwa nakala zisizo na mabano, isipokuwa pale inapobidi kisintaksia. Kwa hivyo, chaguo la kukokotoa katika mfano hapo juu litarudisha nakala na kila thamani kama kipengele.

Ni koma inayounda tuple, sio mabano ya pande zote. Mabano ya pande zote yanaweza kuachwa, isipokuwa katika kesi ya nakala tupu au inapohitajika ili kuzuia utata wa kisintaksia.
Built-in Types — Python 3.10.0 Documentation

Aina ya thamani ya kurudi ni nakala.

result = test()

print(result)
print(type(result))
# ('abc', 100)
# <class 'tuple'>

Kila kipengele kitakuwa cha aina iliyofafanuliwa na chaguo la kukokotoa.

print(result[0])
print(type(result[0]))
# abc
# <class 'str'>

print(result[1])
print(type(result[1]))
# 100
# <class 'int'>

Hitilafu ikiwa utabainisha faharasa inayozidi idadi ya thamani za kurejesha ulizofafanua.

# print(result[2])
# IndexError: tuple index out of range

Inaweza kufunguliwa na thamani nyingi za kurejesha zinaweza kupewa vigeu tofauti.

a, b = test()

print(a)
# abc

print(b)
# 100

Hali hiyo hiyo inatumika ikiwa unataka kubainisha thamani tatu au zaidi za kurejesha badala ya mbili tu.

def test2():
    return 'abc', 100, [0, 1, 2]

a, b, c = test2()

print(a)
# abc

print(b)
# 100

print(c)
# [0, 1, 2]

Hurejesha orodha.

[]Ukiambatanisha na hii, thamani ya kurudi itakuwa orodha badala ya nakala.

def test_list():
    return ['abc', 100]

result = test_list()

print(result)
print(type(result))
# ['abc', 100]
# <class 'list'>