Python işlevinde birden çok dönüş değeri nasıl döndürülür

C’de, bir fonksiyondan birden fazla dönüş değeri döndürmek oldukça sıkıcıdır, ancak Python’da bunu yapmak çok kolaydır.

Virgülle ayrılmış dönüş

Python’da, virgülle ayrılmış bir dizi veya sayı listesi döndürebilirsiniz.

Örnek olarak, aşağıda gösterildiği gibi, dönüşten sonra virgülle ayrılmış olarak yalnızca bir dize ve sayı döndüren bir işlev tanımlayın.

def test():
    return 'abc', 100

Python’da, virgülle ayrılmış değerler, sözdizimsel olarak gerekli olmadıkça, parantezsiz tanımlama grupları olarak kabul edilir. Bu nedenle, yukarıdaki örnekteki işlev, her değeri bir öğe olarak içeren bir demet döndürür.

Tuple’ı oluşturan virgüldür, yuvarlak parantezler değil. Boş demetler veya sözdizimsel belirsizliği önlemek için gerekli olduğu durumlar dışında, yuvarlak parantezler atlanabilir.
Built-in Types — Python 3.10.0 Documentation

Dönüş değerinin türü bir tanımlama grubudur.

result = test()

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

Her eleman, fonksiyon tarafından tanımlanan tipte olacaktır.

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

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

Tanımladığınız dönüş değerlerinin sayısını aşan bir dizin belirtirseniz hata.

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

Açılabilir ve ayrı değişkenlere birden çok dönüş değeri atanabilir.

a, b = test()

print(a)
# abc

print(b)
# 100

Aynısı, yalnızca iki yerine üç veya daha fazla dönüş değeri belirtmek istediğinizde de geçerlidir.

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

a, b, c = test2()

print(a)
# abc

print(b)
# 100

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

Bir liste döndürür.

[]Bunu içine alırsanız, dönüş değeri bir demet yerine bir liste olacaktır.

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

result = test_list()

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