View Single Post
Staro 27.02.2015., 11:26   #37
KhongLo
Registered User
Moj komp
 
KhongLo's Avatar
 
Datum registracije: Jan 2015
Lokacija: Zagreb
Postovi: 695
Tako je. Ono što funkcija radi je definirano u tijelu funkcije, a s kojim vrijednostima će to nešto raditi zadaje se pomoću argumenata. Tijelo funkcije je sve ono što ide ispod def ime_funkcije(arg1, arg2, arg3), pri čemu su arg1, arg2 i arg3 argumenti.

Osim toga što se "razbijanjem" koda na funkcije dobiva na čitljivosti te lakšem pronalaženju i popravljanju grešaka, jedna od glavnih svrha njihovog korištenja je tzv. reusability, tj. ista funkcija može se koristiti u različitim programima i za potpuno različite stvari. Bullet1 je naveo kao primjer funkciju suma i s njom je zbrajao cijene voća. Ista ta funkcija može se kasnije u nekom drugom programu koristiti npr. za zbrajanje kilometara od Zagreba do Rijeke i od Rijeke do Splita. Naravno, ako će je se koristiti za zbrajanje kilometara, bilo bi primjerenije da se artikl1 i artikl2 preimenuju u nešto poput kilometri1 i kilometri2 jer bi bilo lakše za razumijeti u okviru tog programa, pa bi to izgledalo ovako:

Code:
def suma(kilometri1, kilometri2):
    rezultat = kilometri1 + kilometri2
    return rezultat

# Cestovne udaljenosti izmedu gradova su sljedece:
zagreb_rijeka = 170
rijeka_split = 360

''' Koliko cu kilometara prijeci ako krenem iz Zagreba, prespavam u Rijeci i
nastavim dalje prema Splitu? '''
udaljenost = suma(zagreb_rijeka, rijeka_split)
print udaljenost
Isti taj program mogao se napisati i bez da se išta u Bulletovom kodu mijenja, osim vrijednosti varijabli, samo je manje čitljivo i može biti zbunjujuće za onoga tko će čitati taj kod:
Code:
def suma(artikl1, artikl2):
    rezultat = artikl1 + artikl2
    return rezultat

# Cestovne udaljenosti izmedu gradova su sljedece:
jabuka = 170
kruska = 360

''' Koliko cu kilometara prijeci ako krenem iz Zagreba, prespavam u Rijeci i
nastavim dalje prema Splitu? '''
trosak = suma(jabuka, kruska)
print trosak
Oba programa bi na ekran trebala ispisati 530.

Zadnje izmijenjeno od: KhongLo. 27.02.2015. u 11:34.
KhongLo je offline   Reply With Quote