Barcha qo'llanmalarga qaytish
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]