Python OOP15 daqiqa
Obyektga Yo'naltirilgan Dasturlash (OOP) va Dunder Metodlar
Klasslar, konstruktorlar, xususiy solishtirish metodlari (__lt__, __eq__) va algoritmlarda maxsus ma'lumot tuzilmalarini yaratish.
1. Klass va Obyekt tushunchasi
Klass — bu obyektning qolipi yoki andozasidir. Unda atributlar (ma'lumotlar) va metodlar (funksiyalar) saqlanadi. `__init__` metodi konstruktor bo'lib, yangi obyekt yaratilganda avtomatik chaqiriladi.
Python 3 namunasiUTF-8
class Foydalanuvchi:
def __init__(self, ism: str, reyting: int):
self.ism = ism
self.reyting = reyting
def reytingni_oshir(self, ball: int):
self.reyting += ball
print(f"{self.ism}ning yangi reytingi: {self.reyting}")
talaba = Foydalanuvchi("Aziz", 1450)
talaba.reytingni_oshir(50)2. Dunder metodlar va heapq da solishtirish
Heap (prioritetli navbat) yoki sortlash algoritmlarida maxsus obyektlarni solishtirish uchun `__lt__` (less than) metodini aniqlash zarur bo'ladi:
Python 3 namunasiUTF-8
class Talaba:
def __init__(self, ism: str, ball: int):
self.ism = ism
self.ball = ball
def __lt__(self, other):
# Ballar bo'yicha kamayish tartibida solishtirish
return self.ball > other.ball
def __repr__(self):
return f"{self.ism}: {self.ball}"
talabalar = [Talaba("Ali", 80), Talaba("Vali", 95), Talaba("G'ani", 88)]
talabalar.sort()
print(talabalar) # [Vali: 95, G'ani: 88, Ali: 80]