Funktsiooni tagastusväärtused
Pythoni funktsioonid, nagu ka paljudes teistes programmeerimiskeeltes funktsioonid, tagastavad väärtusi. Selle eesmärk on liigutada infot tagasi funktsiooni väljakutsunud skoobile.
Selleks, et funktsioonidelt väärtusi tagastada, kasutame return võtmesõna, millega tähistame väärtust, mille funktsiooni lõpus tagastame. Juhul kui me ei täpsusta return võtmesõnaga, mis väärtust soovime tagastada, tagastab Python kaudselt None väärtuse.
def add(a, b):
return a + b
print(add(2, 3)) # 5
Antud funktsioon arvutab kahe muutuja summa ning tagastab selle.
def add(a, b):
print(a - b) # -1
print(add(2, 3)) # None
Siin olukorras me ei täpsustanud, mida meie funktsioon peaks tagastama. Seepärast tagastas Python ise kaudselt None väärtuse, mida näeme originaalses väljakutses.
Attention
Kui kood jõuab return võtmesõnani, siis funktsioon lõpetab jooksmise ja liigub tagasi kohta, kus funktsioon välja kutsuti!
def add(a, b):
return a + b
print(a, b) # Ei jooksutata
return a - b # Ei jooksutata
print(add(2, 3)) # 5
Siin koodis tagastatakse ikkagi kahe muutuja summa ning sellele järgnev kood ei jookse kunagi.
print vs return
print on Pythonis üks sisse ehitatud lausetest, mis lubab kasutajal kirjutada teksti programmi standardväljundisse.
Loe veel: Funktsioon print() andmete väljastuseks
Erinevalt return-ist ei peata print funktsiooni jooksmist ning ainult väljastab kasutaja jaoks väärtuse visuaalselt.
def add(a, b):
print(a - b) # -1
return a + b # Jookseb, kuna print ei peatanud funktsiooni käiku
print(add(2, 3)) # 5
Siin näites kutsusime funktsioonis add lauset print enne välja, mis põhjustas kasutaja jaoks konsooli printimise, ning siis kutsusime return-i, mis tagastas väärtuse algsele koodile.
def add(a, b):
return a + b
print(a - b) # Ei jooksutata
print(add(2, 3)) # 5
Siin näites kutsusime enne välja tagastuse (return), mis tagastas funktsioonist väärtuse ning funktsiooni käik lõpetati. Seepärast ei jõutud kunagi add funktsioonis kutsutud print lauseni.
Enamasti tahame kasutada print käske selleks, et jälgida oma koodi toimivust või anda kasutajale tagasisidet, mida kood teeb.
Juhtudel, kus tahame kasutada funktsiooni töökäigus saadud tulemusi või tahame väliselt kontrollida (nt unit testid), kas kood toimib õigesti, kasutame return-i.
Lisamaterjalid