Klase

Poznato nam je da je Pajton objektno orjentisan programski jezik. To znači da su svi podaci nad kojima se radi objekti. Objekti sa kojima smo se do sada susretali u Pajtonu su tipa string ili int. Kada smo radili sa stringovima koristili smo neke funkcije, na primer, na nekom stringu smo vršili pretvaranje svih slova u velika slova. Funkcija upper(), koja to radi, je metoda nad stringovima. Metode su funkcije koje se koriste nad određenim tipom objekta. Možemo napraviti i složenije objekte, koji ce se sastojati od osnovnih objekata.
Recimo da želite da napravite program obrađuje podatke o nebeskim telima. Možete raditi i bez klasa, ali sa klasom je znatno lakše raditi ako pravite nešto komplikovanije. Zato možete napraviti klasu nebeskih tela, sa npr. tipom nebeskog tela, prečnikom i imenom osobe koja ga je otkrila.
Klase služe za to da napravimo nov tip podataka i nove metode koje se koriste za rad nad tim podacima. Pomoću klasa pravimo objekte sa sličnim osobinama i funkcijama koje se mogu primeniti na njih.
Klasa se definiše na sledeći način: class ImeKlase(object):
Gde je class ključna reč u Pajtonu. Sve što se odnosi na klasu, tj. objekat koji pravimo, se nalazi posle dvotačke.
Recimo da hoćemo da napravimo klasu nebeskih tela sa navedenim svojstvima. To možemo uraditi na sledeći način:

  
class NebeskaTela(object):
    def __init__(self,tip,precnik,otkrivac):
        self.tip=tip
        self.precnik=precnik
        self.otkrivac=otkrivac
            

Da bi mogli da napravimo primerak, tj. instancu određenog objekta, neophodno je da imamo funkciju koja to radi. Takve funkcije se zovu konstruktori. Funkcija koja se koristi za to u Pajtonu je __init__ , koja uvek prima najmanje jedan argument. Prvi argument koji prima ova, a i svaka funkcija unutar klase, se uzima kao lični argument, odnosno, sve sto se radi nad objektom se radi pomoću prvog argumenta. Ako ne napravimo funkciju inicijalizacije, postoji podrazumevana funkcija, ali u tom slučaju pravimo prazan objekat.

  
class Nista(object):
    pass
nista1=Nista()
            

U ovom slučaju, imaćemo objekat nista1 koji će biti iz klase Nista, ali je prazan.
Vežba: Napraviti klasu Zivotinje koja će imati vrstu, ime i godine starosti.