Print("Assalom alaykum")


POLIMORFIZM — SUPER KLASS METODLARINI QAYTA YOZISH



Download 10,21 Mb.
bet37/58
Sana28.06.2022
Hajmi10,21 Mb.
#713027
1   ...   33   34   35   36   37   38   39   40   ...   58
Bog'liq
Mohirdev.uz...

POLIMORFIZM — SUPER KLASS METODLARINI QAYTA YOZISH


Voris klassga super klassdan meros qolgan istalgan metodni qayta talqin qilish mumkin. Avvalgi misolimizdagi get_info() super metodini ko'raylik, bu metod talabaning ismi, familiyasi, passport raqami va tug'ilgan yilini qaytaradi:
In [18]:
print(talaba.get_info())
Valijon Aliyev. Passport:FA112299, 2000-yilda tug`ilgan
Endi get_info() metodi talabaga mos ma'lumotlar qaytarishi uchun, Talaba klassi ichida huddi shu nomli metodni qayta yozamiz:
In [19]:
class Talaba(Shaxs):
"""Talaba klassi"""
def __init__(self,ism,familiya,passport,tyil,idraqam):
"""Talabaning xususiyatlari"""
super().__init__(ism, familiya, passport, tyil)
self.idraqam = idraqam
self.bosqich = 1

def get_id(self):
"""Talabaning ID raqami"""
return self.idraqam

def get_bosqich(self):
"""Talabaning o'qish bosqichi"""
return self.bosqich

def get_info(self):
"""Talaba haqida ma'lumot"""
info = f"{self.ism} {self.familiya}. "
info += f"{self.get_bosqich()}-bosqich. ID raqami: {self.idraqam}"
return info
Metodni tekshirib ko'ramiz:
In [22]:
talaba = Talaba("Valijon","Aliyev","FA112299",2000,"0000012")
print(talaba.get_info())
Valijon Aliyev. 1-bosqich. ID raqami: 0000012

OBYEKT ICHIDA OBYEKT


Ba'zida klassimiz xususiyatlar va ular bilan ishlaydigan metodlarga to'lib ketishi, bu esa o'z navbatida obyektga murojat qilishni qiyinlashitirishi mumkin. Shunday holatlarda ba'zi xususiyatlarni alohida klass ko'rinishida yozish va keyinchalik bu klassdan yaratilgan obyektni boshqa obyektning xususiyati sifatida foydalanish mumkin.
Misol uchun, yuqoridagi Shaxs klassimizga yana bir manzil degan xususiyat qo'shaylik. Odatda manzil bir nechta qismlardan iborat bo'ladi (xonadon, ko'cha, mahalla, tuman/shahar, viloyat, indeks va hokazo) va ularning har biri uchun Shaxs ichida alohida xususiyat yaratmasdan, alohida manzil degan klassga yuklash maqsadga muvofiq bo'ladi.
In [23]:
class Manzil:
"""Manzil saqlash uchun klass"""
def __init__(self,uy,kocha,tuman,viloyat):
"""Manzil xususiyatlari"""
self.uy = uy
self.kocha = kocha
self.tuman = tuman
self.viloyat = viloyat

def get_manzil(self):
"""Manzilni ko'rish"""
manzil = f"{self.viloyat} viloyati, {self.tuman} tumani, "
manzil += f"{self.kocha} ko'chasi, {self.uy}-uy"
return manzil
Talaba klassimizga ham qo'shimcha manzil xususiyatini qo'shamiz:
In [24]:
class Talaba(Shaxs):
"""Talaba klassi"""
def __init__(self,ism,familiya,passport,tyil,idraqam,manzil):
"""Talabaning xususiyatlari"""
super().__init__(ism, familiya, passport, tyil)
self.idraqam = idraqam
self.bosqich = 1
self.manzil = manzil

def get_id(self):
"""Talabaning ID raqami"""
return self.idraqam

def get_bosqich(self):
"""Talabaning o'qish bosqichi"""
return self.bosqich

def get_info(self):
"""Talaba haqida ma'lumot"""
info = f"{self.ism} {self.familiya}. "
info += f"{self.get_bosqich()}-bosqich. ID raqami: {self.idraqam}"
return info
Keling endi talaba obyektini qayta yaratamiz. Bu safar talabaning manzili ham alohida obyekt sifatida talaba ga uzatiladi:
In [25]:
talaba_manzil = Manzil(12,'Olmazor',"Bog'bon","Samarqand")
talaba = Talaba("Valijon","Aliyev","FA112299",2000,"0000012",talaba_manzil)
Obyekt ichidagi obyektning xususiyatlari va metodlariga ham avvalgidek nuqta orqali murojat qilishimiz mumkin:
In [26]:
print(talaba.manzil.get_manzil())
Samarqand viloyati, Bog'bon tumani, Olmazor ko'chasi, 12-uy
In [27]:
print(talaba.manzil.tuman)
Bog'bon

Download 10,21 Mb.

Do'stlaringiz bilan baham:
1   ...   33   34   35   36   37   38   39   40   ...   58




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish