Hvernig á að skila mörgum skilagildum í Python falli

Viðskipti

Í C er það frekar leiðinlegt að skila mörgum skilagildum frá falli, en í Python er það mjög auðvelt að gera.

Skila aðskilin með kommum

Í Python geturðu einfaldlega skilað lista yfir strengi eða tölustafi aðskilinn með kommum.

Sem dæmi, skilgreindu fall sem skilar aðeins streng og tölu eins og sýnt er hér að neðan, með kommu á eftir skilunum.

def test():
    return 'abc', 100

Í Python eru kommuaðskilin gildi talin tuple án sviga, nema þar sem setningafræðilega er nauðsynlegt. Þess vegna mun fallið í dæminu hér að ofan skila tuple með hverju gildi sem frumefni.

Það er komman sem býr til tuple, ekki kringlóttu sviga. Hringlaga sviga má sleppa, nema ef um er að ræða tóma túlla eða þegar nauðsyn krefur til að forðast setningafræðilegan tvíræðni.
Built-in Types — Python 3.10.0 Documentation

Gerð skilagildisins er túpel.

result = test()

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

Hver þáttur verður af þeirri gerð sem aðgerðin skilgreinir.

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

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

Villa ef þú tilgreinir vísitölu sem fer yfir fjölda ávöxtunargilda sem þú skilgreindir.

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

Það er hægt að taka það upp og hægt er að úthluta mörgum skilagildum á aðskildar breytur.

a, b = test()

print(a)
# abc

print(b)
# 100

Sama gildir ef þú vilt tilgreina þrjú eða fleiri skilagildi í stað tveggja.

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

a, b, c = test2()

print(a)
# abc

print(b)
# 100

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

Skilar lista.

[]Ef þú lætur það fylgja með, þá verður skilagildið listi í stað tupels.

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

result = test_list()

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