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