12.07.2015 Views

Python

Python

Python

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

54 Funkcijeizvr²enja naredbe def povezuje s odgovaraju¢im referencama. Na primjer, funkcija moºe brojati kolikoje puta pozivana:def counter( ):counter.count += 1return counter.countcounter.count = 0Iako ogu¢nost pridruºivanja atributa s funkcijom moºe ponekad biti od koristi njena primjena nije£esta. Mnogo £e²¢e, kada se trebaju povezati neki podaci i programski kôd zajedno, koriste se objektnoorijentiranimehanizmi.6.4 Naredba 'return'Naredba return u <strong>Python</strong>u dopu²ta se jedino unutar tijela funkcije, a iza nje moºe slijediti neki izraz.Kada se return izvr²i, funkcija zavr²ava i dobiva se povratna vrijednost izraza. Funkcija vra¢a vrijednostNone ako zavr²ava dolaskom do konca svog funkcijskog tijela ili izvr²enjem naredbe return bezpridruºenog izraza. Stvar je stila programskog pisanja da se naredba return ne pi²e na kraju tijelafunkcije, ako ona nema izraz koji se vra¢a programskom kôdu koji funkciju poziva. Isto tako, ako nekereturn naredbe u funkciji imaju izraz koji vra¢aju pozivatelju, onda bi ga i sve ostale return naredbetrebale imati. Naredba return None moºe se pisati ako se eksplicitno ºeli zadrºati stil takvog pisanja.Iako <strong>Python</strong> ne prisiljava na stilske konvencije, njihovo po²tivanje na£init ¢e na² kôd jasnijim i£itljivijim.6.5 Poziv funkcijePoziv funkciji je izraz sa sljede¢om sintaksom:funkcijsko_ime(argumenti)funkcijsko_ime moºe biti bilo kakva referenca na objekt funkcije, ²to je naj£e²¢e samo ime doti£nefunkcije. Zagrade ozna£uju operaciju poziva funkcijie, dok su argumenti u najjednostavnijem slu£aju nizod nula ili vi²e izraza odvojenih zarezima, koji daju, prenose, vrijednosti odgovaraju¢im parametrimadenirane funkcije. Kada se funkcija poziva , parametri poziva funkcije povezuju se s funkcijskimargumentima, tijelo funkcije se izvr²ava sa stvarnim vrijenostima argumenata, a funkcija nakon izvr²enjana koncu vra¢a pozivatelju neku vrijednost izraza.6.5.1 Prijenos argumenataU tradicionalnim terminima izraºeno, sve operacije preno²enja argumenata u <strong>Python</strong>u su putem vrijednosti(engl. by value). Na primjer, ako se varijabla prenosi kao argument, <strong>Python</strong> prenosi funkcijiobjekt (vrijednost) koju varijabla pokazuje, a ne samu varijablu (adresu koju sadrºi). Na taj na£infunkcija ne moºe re-povezati, tj. mijenjati sadrºaj varijable, nego samo kopiju vrijednosti. Ali, akose kao argument prenosi promjenljivi objekt, funkcija moºe zahtjevati izmjene na objektu, jer <strong>Python</strong>prenosi sam objekt (njegovu adresu), a ne njegovu kopiju. Re-povezivanje varijable i promjena objektasu dva potpuno razli£ita koncepta u <strong>Python</strong>u. Na primjer:def f(x, y):x = 23y.append(42)a = 77b = [99]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!