Python'da klass metodlari va atributlar
Oldingi darsda obyektga ma’lumot — atribut — berishni o’rgandik. Lekin obyekt faqat ma’lumot saqlab qolmaydi, u harakat ham qila oladi. Obyektning harakati metod deb ataladi. Bu darsda klassga metod qo’shishni ko’ramiz.
Metod — klass ichidagi funksiya
Metod — klass ichida yozilgan funksiya. U shu klass
obyektlari bajara oladigan harakatni belgilaydi. Metod ham def bilan
yoziladi va birinchi parametri doim self:
salomlash — metod. Uni aziz.salomlash() bilan chaqiramiz. Diqqat: qavs
ichiga hech narsa yozmadik, lekin metod self orqali aziz ning ismini
biladi.
self orqali atributdan foydalanish
Metod obyektning atributlariga self orqali kiradi. self.ism — “shu
obyektning ismi”. Shu tufayli har obyekt o’z ma’lumoti bilan ishlaydi:
aziz = Oquvchi("Aziz", 20)
dilnoza = Oquvchi("Dilnoza", 22)
aziz.salomlash() # Salom, men Aziz!
dilnoza.salomlash() # Salom, men Dilnoza!
Bitta metod, ikki xil natija — chunki har obyektning self.ism i boshqacha.
Hisob qaytaradigan metod
Metod ekranga chiqarish bilan cheklanmaydi — u
return orqali qiymat ham qaytarishi mumkin. O’quvchining
o’rtacha bahosini hisoblaydigan metod yozamiz:
ortacha metodi self.baholar ro’yxatidan foydalanib
o’rtachani hisoblaydi va return bilan qaytaradi. Ma’lumot (baholar) ham,
uni qayta ishlaydigan harakat (ortacha) ham bitta obyekt ichida — bu
OOP ning asosiy g’oyasi.
Metod boshqa metodni chaqirishi
Metod ichida self.boshqa_metod() orqali shu obyektning boshqa metodini
chaqirsa bo’ladi:
hisobot ichida self.ortacha() chaqirildi — obyekt o’z harakatlarini
birlashtirib ishlatdi.
Amaliy mashq
Klassga harakat qo’shing:
Hisobklassini yarating —egasivabalansatributlari bo’lsin;toldirish(summa)metodini yozing — balansni oshirsin;yechish(summa)metodini yozing — balans yetarli bo’lsagina kamaytirsin, aks holda xabar chiqarsin;korish()metodi joriy balansni chiqarsin;- obyekt yasab, uchala metodni navbatma-navbat chaqiring.
yechish() ichida self.balans o’rniga shunchaki balans yozib ko’ring —
qanday xato chiqadi?
Qisqacha xulosa
- Metod — klass ichidagi funksiya; obyektning harakati.
- Har metodning birinchi parametri
self— hozirgi obyektning o’zi. - Metod ichida atribut/metodga
selforqali kiriladi:self.ism,self.ortacha(). - Metod
printqilishi yokireturnbilan qiymat qaytarishi mumkin. - Atribut — ma’lumot (qavssiz), metod — harakat (qavs bilan chaqiriladi).
Keyingi darsda meros (inheritance) — bir klassni boshqasidan tayyor holda “meros qilib olish” va kodni takrorlamaslikni ko’ramiz.