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.

60 <strong>Python</strong> - objektni jezik7.2 Naredba 'class'Naredba class je naj£e²¢i na£in stvaranja objekta klase, i to s ovakvom sintaksom:class ime\_klase[(klase\_roditelji)]:naredba(e)String ime_klase je identikator. To je varijabla koja postaje povezana (ili re-povezana) s objektomklase nakon ²to naredba class zavr²i s izvr²avanjem. klase_roditelji je po volji zarezima odvojenniz izraza (obi£no stringovnih identikatora) £ije su vrijednosti objekti klasa. Ove su klase poznatepod razli£itim imenima u razli£itim jezicima - govori se o baznim klasama, superklasama ili roditeljimaklase koja se stvara. Za klasu koja se stvara kaºe se da 'naslježuje oblik', 'po£inje od', 'produºava se'ili 'podklasira' od svoje bazne, roditeljske klase. Ova klasa takožer je poznata kao izravna podklasa ilipotomak svojih baznih klasa. Podklasna veza izmežu klasa je prijelazna: ako je C1 podklasa od C2, aC2 podklasa od C3, onda je C1 podklasa od C3. Ugražena funkcija issubclass(C1,C2) prihva¢a dvaargumenta koji su objekti klase: vra¢a True ako je C1 podklasa od C2; u suprotnom vra¢a False. Svakaklasa je zapravo podklasa od same sebe, tako da issubclass(C, C) vra¢a True za bilo koju klasu C.Sintaksa naredbe class ima malu, nezgodnu razliku od sintakse naredbe def. U naredbidef, zagradesu obvezatne izmežu imena funkcije i dvoto£ke. Da se denira funkcija bez formalnih parametara, morase koristiti naredba kao:def ime( ):naredba(e)U naredbi class zagrade su obvezatne ako klasa ima jednu li vi²e roditeljskih klasa, ali su zabranjeneako ih klasa nema. Tako se za denaciju klase bez roditeljskih klasa mora koristiti naredba ovakvesintakse:class ime:naredba(e)Niz naredbi koji nije prazan, a koji slijedi naredbu class poznat je kao tijelo klase. Tijelo klaseizvr²ava se odmah, kao dio procesa izvr²enja naredbe class. Dok se tijelo ne izvr²i, novi objekt klasene postoji i identikator ime nije jo² povezan (ili re-povezan). Kona£no, valja primijetiti da naredbaclass ne stvara nove instance klase, nego denira skup atributa koji se dijele izmežu svih instanci kojese iz klase stvore.7.3 Tijelo klaseTijelo klase je mjesto gdje se speciciraju atributi klase; ovi atributi mogu biti podat£ani ili funkcijskiobjekti.7.3.1 Atributi klasnog objektaAtribut objekta klase obi£no se denira povezivanjem neke vrijednosti (npr. literala) na identikatorunutar tijela klase. Na primjer:class C1:x = 23print C1.x # ispisuje se: 23Objekt klase C1 ima atribut s imenom x, povezan na vrijednost cjelobrojnog literala 23, a C1.x seodnosi, referencira na taj atribut. Mogu¢e je takožer povezati ili odvezati atribute klase izvan tijelaklase. Na primjer:

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

Saved successfully!

Ooh no, something went wrong!