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)