class Odam:
def __init__(self, ism, familiya):
self.ism = ism
self.familiya = familiya
def tanish(self):
print(self.ism, self.familiya)
# Endi voris sinf ya'ni bola sinfni hosil qilamiz
class Talaba (Odam):
pass
x = Talaba ("Asadbek", "Suvonov")
x.tanish()
Asadbek Suvonov
__init__() funksiyasini qo’shish
Avvalgi misolimizda voris sinf hosil qilganimizda pass kalit so’zi bilan cheklanib qo’ya qoldik.
Shu sababli voris sinf barcha funksiyalarni avtomatik tarzda o’zlashtirgan edi. Endi voris sinfga
__init__() funksiyasi bilan parametrlarini joylashtiramiz. Bunda voris sinf ona sinfdagi __init__()
funksiyasidan emas o’zidagidan foydalanadi.
class Odam:
def __init__(self, ism, familiya):
self.ism = ism
self.familiya = familiya
def tanish(self):
print(self.ism, self.familiya)
# Endi voris sinf ya'ni bola sinfni hosil qilamiz
class Talaba (Odam):
def __init__(self, ism, familiya):
self.ism = ism
self.familiya = familiya
x = Talaba ("Asadbek", "Suvonov")
x.tanish()
Asadbek Suvonov
Ammo ona sinfdagi __init__() funksiyasidan foydalanmoqchi bo’lsak, voris sinfdagi __init__()
funksiyasi ichiga ona sinfning shu funksiyasini yozamiz:
class Odam:
def __init__(self, ism, familiya):
self.ism = ism
self.familiya = familiya
def tanish(self):
print(self.ism, self.familiya)
# Endi voris sinf ya'ni bola sinfni hosil qilamiz
class Talaba (Odam):
def __init__(self, ism, familiya):
Odam.__init__(self, ism, familiya)
x = Talaba ("Asadbek", "Suvonov")
x.tanish()
Asadbek Suvonov
super() funksiyasi
Sinflar bilan ishlash uchun maxsus super() funksiyasi ham mumkin. Bu funksiya ona sinfdagi
barcha funksiya va parametrlarni voris sinfga o’zlashtiradi:
class Odam:
def __init__(self, ism, familiya):
self.ism = ism
self.familiya = familiya
def tanish(self):
print(self.ism, self.familiya)
# Endi voris sinf ya'ni bola sinfni hosil qilamiz
class Talaba (Odam):
def __init__(self, ism, familiya):
super().__init__(ism, familiya)
x = Talaba ("Asadbek", "Suvonov")
x.tanish()
Asadbek Suvonov
Parametr qo’shish
Voris sinf hosil qilingach unga yana qo’shimcha parameter qo’shmoqchi bo’lsak quyidagicha
amalga oshirish mumkin. Hozir yil parametrini qo’shamiz:
class Odam:
def __init__(self, ism, familiya):
self.ism = ism
self.familiya = familiya
def tanish(self):
print(self.ism, self.familiya)
# Endi voris sinf ya'ni bola sinfni hosil qilamiz
class Talaba (Odam):
def __init__(self, ism, familiya):
super().__init__(ism, familiya)
self.yil = 2002
x = Talaba ("Asadbek", "Suvonov")
print(x.yil)
2002
Yuqoridagi misolimizda yangi parametrni qo’shgan zahotimiz unga qiymat berdik. Endi __init__()
funksiyasining o’ziga yil parametrini qo’shib unga o’zlashtiramiz. Shundan so’ng uning qiymatini
yangi obyekt hosil qilayotganda o’zimiz kirtishimiz kerak bo’ladi.
class Odam:
def __init__(self, ism, familiya):
self.ism = ism
self.familiya = familiya
def tanish(self):
print(self.ism, self.familiya)
# Endi voris sinf ya'ni bola sinfni hosil qilamiz
class Talaba (Odam):
def __init__(self, ism, familiya, yil):
super().__init__(ism, familiya)
self.yil = 2002
x = Talaba ("Asadbek", "Suvonov", 2002)
print(x.yil)
2002
Funksiya qo’shish
Voris sinfga qo’shimcha funksiyalar ham qo’shish mumkin. Natijada u ona sinfdan o’zlashtirgan
funksiyalari va biz qo’shgan qo’shimcha funksiyalarga ega bo’ladi.
Hozir voris sinfga tugilgan() funksiyasini qo’shamiz. Bu funksiya talabaning tug’ilgan yili haqida
ma’lumot beradi:
class Odam:
def __init__(self, ism, familiya):
self.ism = ism
self.familiya = familiya
def tanish(self):
print(self.ism, self.familiya)
# Endi voris sinf ya'ni bola sinfni hosil qilamiz
class Talaba (Odam):
def __init__(self, ism, familiya, yil):
super().__init__(ism, familiya)
self.yil = 2002
def tugilgan(self):
print("Men" , self.yil , " - yilda tug'ilganman")
x = Talaba ("Asadbek", "Suvonov", 2002)
x.tugilgan()
Men 2002 - yilda tug'ilganman
Do'stlaringiz bilan baham: |