OOP yordamida murakkab dasturlarni tartibli yozish mumkin.

Klass yaratish

class Talaba:
    maktab = 'SQL.uz'  # Klass atributi

    def __init__(self, ism, yosh):
        self.ism = ism    # Ob'ekt atributi
        self.yosh = yosh
        self.baholar = []

    def baho_qosh(self, baho):
        self.baholar.append(baho)

    def ortacha_baho(self):
        if self.baholar:
            return sum(self.baholar) / len(self.baholar)
        return 0

    def __str__(self):
        return f'{self.ism} ({self.yosh} yosh)'

talaba = Talaba('Sherali', 25)
talaba.baho_qosh(90)
talaba.baho_qosh(85)
print(talaba.ortacha_baho())   # 87.5

Meros olish (Inheritance)

class Kurs:
    def __init__(self, nomi, narxi):
        self.nomi = nomi
        self.narxi = narxi

    def malumot(self):
        return f'{self.nomi}: {self.narxi} so'm'

class OnlaynKurs(Kurs):
    def __init__(self, nomi, narxi, havola):
        super().__init__(nomi, narxi)
        self.havola = havola

    def malumot(self):
        asosiy = super().malumot()
        return f'{asosiy} | Havola: {self.havola}'

kurs = OnlaynKurs('Python', 499000, 'sql.uz/python')
print(kurs.malumot())

@property dekoratori

class Doira:
    def __init__(self, radius):
        self._radius = radius

    @property
    def radius(self):
        return self._radius

    @radius.setter
    def radius(self, qiymat):
        if qiymat < 0:
            raise ValueError('Radius manfiy bo'lmaydi')
        self._radius = qiymat

    @property
    def yuza(self):
        import math
        return math.pi * self._radius ** 2

d = Doira(5)
print(d.yuza)