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.

62 <strong>Python</strong> - objektni jezik7.3.3 Varijable speci£ne za klasuKada naredba u tijelu klase (ili u metodi unutar tijela) koristi identikator koji po£inje s dvije podcrte(ali ne zavr²ava podcrtama) - __ident, <strong>Python</strong> compiler implicitno mijenja identikator u _classname__ident,gdje je classname ime klase. Ovo dopu²ta klasi kori²tenje privatnih imena za atribute, metode, globalnevarijable i druge svrhe, bez rizika njihovog slu£ajnog dupliciranja negdje drugdje. Dogovorno, sviidentikatori koji po£inju jednom podcrtom takožer se namijenjeni kao privatni, za doseg koji ih povezuje,bez obzira je li doseg unutar klase ili nije. <strong>Python</strong> compiler ne prisiljava dogovore oko privatnostivarijabli i metoda, to je ostavljeno programerima u <strong>Python</strong>u.7.3.4 Dokumentacijski stringAko je prva naredba u tijelu klase literal niza znakova (string), onda compiler povezuje taj niz znakovakao atribut dokumentacijskog stringa za tu klasu. Ovaj se atribut zove __doc__ te je poznat kaodokumentiranje klase. Ima isto svojstvo kao ve¢ opisan po£etni komentar ili pomo¢ (engl. help) udeniciji funkcije.7.4 Instanca klaseNeka je zadana klasa ZiroRacun ovako:class ZiroRacun:"Jednostavna klasa"tip_racuna = "Ziro"def _ _init_ _(self,ime,racun):"Inicijalizacije nove klase"self.osoba = nameself.novac = racundef polog(self,iznos):"Dodaje iznosu na ra£unu"self.novac = self.novac + iznosdef povuci(self,iznos):"Oduzima od iznosa na ra£unu"self.novac = self.novac - iznosdef provjeri(self):"Vraca iznos na racunu"return self.novacInstance klase stvaraju se pozivom class objekta. Tada se istodobno stvara nova instanca i poziva__init__() metoda te klase (ako je u njoj denirana). Na primjer:# Neka se klasa zove ZiroRacuna = ZiroRacun("Mario", 1000.00)# Stvara instancu 'a' i poziva ZiroRacun.__init__(a,"Mario", 1000.00)b = ZiroRacun("Bill", 100000000000L)# Stvara instancu 'b' i poziva ZiroRacun.__init__(b,"Bill", 100000000000L)Jednom na£injeni, atributi i metode novo nastale instance dohvatljivi su kori²tenjem 'to£ka' (.)operatora:a.polog(100.00)b.povuci(sys.maxint)i = a.imeprint a.tip_racuna# Poziva ZiroRacun.deposit(a,100.00)# Poziva ZiroRacun.povuci(b,sys.maxint)# Dohvaca a.ime# Ispisuje tip_racuna

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

Saved successfully!

Ooh no, something went wrong!