Si të ktheni vlera të shumta të kthimit në një funksion Python

biznes

Në C, kthimi i vlerave të shumëfishta të kthimit nga një funksion është mjaft i lodhshëm, por në Python, është shumë e lehtë për t’u bërë.

Kthimi i ndarë me presje

Në Python, thjesht mund të ktheni një listë të vargjeve ose numrave të ndarë me presje.

Si shembull, përcaktoni një funksion që kthen vetëm një varg dhe një numër siç tregohet më poshtë, me secilin të ndarë me presje pas kthimit.

def test():
    return 'abc', 100

Në Python, vlerat e ndara me presje konsiderohen tuple pa kllapa, përveç rasteve kur është e nevojshme sintaksisht. Prandaj, funksioni në shembullin e mësipërm do të kthejë një tufë me secilën vlerë si element.

Është presja që krijon tufën, jo kllapat e rrumbullakëta. Kllapat e rrumbullakëta mund të hiqen, përveç rastit të tupave bosh ose kur është e nevojshme për të shmangur paqartësitë sintaksore.
Built-in Types — Python 3.10.0 Documentation

Lloji i vlerës së kthyer është një tufish.

result = test()

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

Çdo element do të jetë i tipit të përcaktuar nga funksioni.

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

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

Gabim nëse specifikoni një indeks që tejkalon numrin e vlerave të kthyera që keni përcaktuar.

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

Mund të zbërthehet dhe vlera të shumta kthyese mund t’u caktohen variablave të veçantë.

a, b = test()

print(a)
# abc

print(b)
# 100

E njëjta gjë vlen nëse dëshironi të specifikoni tre ose më shumë vlera të kthimit në vend të vetëm dy.

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

a, b, c = test2()

print(a)
# abc

print(b)
# 100

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

Kthen një listë.

[]Nëse e mbyllni me këtë, vlera e kthimit do të jetë një listë në vend të një tupleje.

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

result = test_list()

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