Metode

Potrebna nam je funkcija koja ce za svaku instancu klase NebeskaTela ispisivati sve o tom telu, i jednu koja će govoriti neki citat o svemiru. Znači, potrebne su nam metode u okviru klase NebeskaTela. Evo kako ćemo ih napraviti:

  
class NebeskaTela(object):
    galaksija="Mlecni put"
    def __init__(self,tip,precnik,otkrivac):
        self.tip=tip
        self.precnik=precnik
        self.otkrivac=otkrivac        
    def sve(self):
        return "Ovo je %s, precnika %d i otkrio/otkrili su je %s!" % (self.tip,self.precnik,self.otkrivac) 
    def citat(self):
        return """Postoji teorija koja kaze da ce, ukoliko ikada iko bude
        otkrio koja je svrha svemira i zasto on postoji,
        ovaj smesta isceznuti i biti zamenjen necim jos neobicnijim
        i neobjasnjivijim. Postoji i druga teorija koja tvrdi da se sve to vec desilo."""
        
sunce=NebeskaTela("zvezda",1369000,"svi")
            

U okviru klase, možemo napraviti funkcije koje se na tu klasu objekata odnose. Takve funkcije se nazivaju metode.
Metode se definišu na isti način kao i funkcije. (Kjučna reč def imeMetode(argumenti koji se prosleđuju funkciji)).

Kod metoda je prvi argument uvek lični argument (pod imenom self ili drugim), a zatim se navode argumenti koji se prosleđuju funkciji. Dakle, kod definicije metode unutar klase, uvek postoji makar jedan argument.
Pozvaćemo metode citat i sve na sledeći način:

  
class NebeskaTela(object):
    galaksija="Mlecni put"
    def __init__(self,tip,precnik,otkrivac):
        self.tip=tip
        self.precnik=precnik
        self.otkrivac=otkrivac        
    def sve(self):
        return "Ovo je %s, precnika %d i otkrio/otkrili su je %s!" % (self.tip,self.precnik,self.otkrivac) 
    def citat(self):
        return """Postoji teorija koja kaze da ce, ukoliko ikada iko bude
        otkrio koja je svrha svemira i zasto on postoji,
        ovaj smesta isceznuti i biti zamenjen necim jos neobicnijim
        i neobjasnjivijim. Postoji i druga teorija koja tvrdi da se sve to vec desilo."""
        
sunce=NebeskaTela("zvezda",1369000,"svi")
print(sunce.sve())
print(sunce.citat())
            
Kopiraj

Rezultat ovog koda će biti upravo svi podaci o instanci sunce i citat.
Kao što se može primetiti, i u slučaju metode imamo jedan argument manje pri pozivanju, iz istog razloga kao i kod inicijalizacije, i koristimo tačku pri pozivanju metode nad instancom.

Vežba: Napraviti funkciju oglasavanje u okviru klase Zivotinje koja će u zavisnosti od toga da li je životinja pas ili mačka vraćati “Av av” ili “Mijau”.