Ikkinchi bo'limda atributlar va metodlarni batafsil o'rgandik:
__str__ — obyektni chiroyli matn sifatida ko'rsatishEndi bularning hammasini birlashtirgan to'liq Talaba klassi quramiz — instance atributlar, metod va __str__ bilan.
class Talaba:
def __init__(self, ism, baho):
self.ism = ism
self.baho = baho
def baho_harfi(self):
# Bahoga qarab harf bahosi qaytaradi
if self.baho >= 90:
return "A"
elif self.baho >= 80:
return "B"
elif self.baho >= 70:
return "C"
elif self.baho >= 60:
return "D"
else:
return "F"
def __str__(self):
harf = self.baho_harfi()
return f"Talaba: {self.ism}, Baho: {self.baho} ({harf})"
# Foydalanish
t1 = Talaba("Ali", 92)
print(t1) # Talaba: Ali, Baho: 92 (A)
print(t1.baho_harfi()) # A
t2 = Talaba("Vali", 75)
print(t2) # Talaba: Vali, Baho: 75 (C)
print(t2.baho_harfi()) # C
t3 = Talaba("Sarvar", 55)
print(t3) # Talaba: Sarvar, Baho: 55 (F)Diqqat qiling: __str__ ichida self.baho_harfi() ni chaqirdik — ya'ni bir metod ichida boshqa metodga murojaat qilish mumkin! Bu OOPning kuchli tomonlaridan biri.
Baho harflari:
Muhim qoidalar:
self.metod() orqali chaqirishi mumkin__str__ ichida murakkab hisob-kitoblarni boshqa metodga topshirish kodni tozaroq qiladiself.atribut orqali ochiqbaho_harfi() kabi metodlar qayta ishlatilishi mumkin — __str__ ham, tashqi kod ham chaqiradiTo'liq Talaba klassini yaratish
Quyidagi amallarni bajaring:
Talaba nomli klass yarating__init__(self, ism, baho) metodida ikkita atributni saqlangbaho_harfi(self) metodini yozing:
"A", 80–89 → "B", 70–79 → "C", 60–69 → "D", <60 → "F"__str__(self) metodini yozing — "Talaba: {ism}, Baho: {baho} ({harf})" qaytarsinBu mashq orqali siz:
__str__ ni birga qo'llaysizMisol:
Kiritish:
Ali
92Chiqish:
Talaba: Ali, Baho: 92 (A)
A