Python funksiyasında çoxlu qaytarma dəyərini necə qaytarmaq olar

Biznes

C-də bir funksiyadan çoxlu qaytarılan dəyərləri qaytarmaq olduqca yorucudur, lakin Python-da bunu etmək çox asandır.

Vergüllə ayrılmış qayıdın

Python-da siz sadəcə olaraq vergüllə ayrılmış sətirlərin və ya rəqəmlərin siyahısını qaytara bilərsiniz.

Nümunə olaraq, aşağıda göstərildiyi kimi yalnız sətir və ədədi qaytaran, hər biri qayıtdıqdan sonra vergüllə ayrılmış funksiyanı təyin edin.

def test():
    return 'abc', 100

Python-da vergüllə ayrılmış qiymətlər sintaktik zərurətdən başqa, mötərizəsiz dəstlər hesab olunur. Buna görə də, yuxarıdakı misaldakı funksiya element kimi hər bir dəyəri olan bir dəst qaytaracaq.

Dəyirmi mötərizələri deyil, dəzgahı yaradan vergüldür. Dairəvi mötərizələr boş tuplelar və ya sintaktik qeyri-müəyyənliyin qarşısını almaq üçün lazım olduqda istisna olmaqla buraxıla bilər.
Built-in Types — Python 3.10.0 Documentation

Qaytarılan dəyər növü bir dəstdir.

result = test()

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

Hər bir element funksiya tərəfindən müəyyən edilmiş tipdə olacaqdır.

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

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

Müəyyən etdiyiniz qaytarma dəyərlərinin sayını aşan indeksi təyin etsəniz xəta.

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

O, qablaşdırıla bilər və ayrı-ayrı dəyişənlərə çoxlu qaytarma dəyərləri təyin edilə bilər.

a, b = test()

print(a)
# abc

print(b)
# 100

Eyni şey, yalnız iki əvəzinə üç və ya daha çox qaytarma dəyərini təyin etmək istəyirsinizsə, tətbiq olunur.

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

a, b, c = test2()

print(a)
# abc

print(b)
# 100

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

Siyahı qaytarır.

[]Əgər onu bununla əlavə etsəniz, qaytarılan dəyər dəzgah əvəzinə siyahı olacaq.

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

result = test_list()

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