Metode koje imaju specijalna značenja

17.2 Metode koje imaju specijalna značenja

Prilikom korišćenja OOP-a i definisanja klasa, mi možemo mnogo olakšati posao sebi, ali i samom Pythonu, ukoliko se pridržavamo nekih „specijalnih“ oznaka za naše metode. U delu tutorijala u kojem smo obrađivali OOP, video si da postoje određene metode, kao što su __init__() i __del__(), čije ime ima poseban značaj prilikom definisanja klasa.
Posebna imena naših metoda se koriste da bi smo od klase dobili objekte koji mogu da imitiraju (ili da imaju slično) ponašanje kao i objekti koji su već „ugrađeni“ u Python (pod tim mislim na stringove, brojeve, rečnike, tuple itd). Na primer, ako bi smo želeli da koristimo oznaku x[kljuc] (gde je x promenljiva koja čuva objekat naše klase, pa bi ovo bila operacija indeksiranja, slično kao da je naš objekat lista ili tupla), onda, sve što treba da uradimo je, da definišemo metod sa imenom __getitem__() i posao je završen. Upravo tako je u Python-u definisana i operacija isecanja u klasi list!
Neka korisna imena koja mogu da definišu posebne metode u klasama, su navedena u sledećoj tabeli. Ako želite da znate malo više o svim mogućim specijalnim metodama, pogledajte ovo uputstvo
Ime metode
Značenje
__init__(self, …)
Ovaj metod će se izvršavati u trenutku kada se kreira novi objekat.
__del__(self)
Izvršava se u trenutku kada naš objekat treba da bude uništen.U programu - komanda del
__str__(self)
Izvršava se kada nam je potreban prikaz objekta, tj kada u programu koristimo print() ili str() funkciju.
__lt__(self, drugi)
Izvršava se kada se u programu koristi "manje od" operator (<). Slično ovom metodu, postoje posebna imena za sve operatere (+, >, itd).
__getitem__(self, kljuc)
Izvršava se kada se u programu koristi oznaka x[kljuc], tj. operacija indeksiranja.
__len__(self)
Izvršava se kada se u programu koristi funkcija len().

17.1 Malo igranje
sa tupleima
Indeks 17.3 Blokovi od
samo jedne naredbe

Primjedbe

Popularno ovog meseca

Gde pronaći novosti sa facebook stranica nakon velike promene koja ga je zadesila?

Dva načina da vratite svoj Windows 10 na fabričke vrednosti

Kako preuzeti video koji je neko postavio na facebook-u bez upotrebe dodatnih programa?

Više neće biti moguć besplatan prelazak na Windows 10

Prijateljski meč ŠK "Titel" - ŠK "Bukovac"

Kako manipulisati Windows licencom pomoću slmgr komande?

Tu je novi Qt creator 4.4.0!

Fake poet

Da li je poželjno biti anoniman na internetu (ili se predstavljati punim imenom i prezimenom)?

Kosmička era može da počne! 10, 9, 8, 7.... Naravno, pre 60 godina...