OOPning yana bir muhim tamoyili — meros (inheritance). Meros deganda bola klass ota klassning barcha atributlari va metodlarini o'ziga oladi.
Hayotiy misol: Hayvonlar olami. Hayvon — umumiy tushuncha: har qanday hayvonning ismi, yoshi bor va u tovush chiqaradi. It va Mushuk — aniq hayvonlar. Ularning o'z xususiyatlari bor, lekin barchasi Hayvon ning umumiy xususiyatlarini ham baham ko'radi.
Meros bo'lmasa, bir xil kodni qayta-qayta yozishga to'g'ri keladi:
# Merossiz — kod takrorlanadi
class It:
def __init__(self, ism, yosh):
self.ism = ism # takror
self.yosh = yosh # takror
class Mushuk:
def __init__(self, ism, yosh):
self.ism = ism # takror
self.yosh = yosh # takrorMeros yordamida umumiy qismni bitta joyda yozamiz:
# Meros BILAN — kod takrorlanmaydi
class Hayvon:
def __init__(self, ism):
self.ism = ism # bir marta yozildi
class It(Hayvon): # It, Hayvon dan meros oladi
pass
class Mushuk(Hayvon): # Mushuk ham Hayvon dan meros oladi
pass
it = It("Bobik")
mushuk = Mushuk("Mitti")
print(it.ism) # Bobik — meros olindi!
print(mushuk.ism) # Mitti — meros olindi!class It(Hayvon): — bu sintaksis "It klassi Hayvon klassidan meros oladi" degan ma'noni beradi. Hayvon — ota klass (base class), It — bola klass (child class).
Bola klass ota klassning barcha atributlari va metodlarini o'zida mavjud bo'lgandek ishlatadi — ularni qayta yozmasdan.
Muhim qoidalar:
class Bola(Ota): — meros olish sintaksisiMeros tushunchalarini tekshirish
Quyidagi savollarga javob bering va meros asosiy tushunchalarini mustahkamlang: