Merosxurlik bizga boshqa sinfdan barcha qiymatlarni meros qilib oladigan sinfni aniqlashni imkonini beradi. Bunda Sinflar ota-sinf va bola-sinf deb yuritiladi.
- Ota-sinf: bu meros bo'lib qolgan sinf hisoblanib, u asosiy sinf deb ham ataladi.
- Bola-sinf: bu boshqa sinfdan meros bo'lib qolgan sinf, hosila sinf deb ham ataladi.
OTA-Sinf yaratish
Har qanday yaratilgan sinf ota-sinf bo'lishi mumkin, shuning uchun sintaksis boshqa sinflarni yaratish bilan bir xil hisoblanadi.
class Person:
def __init__(self, fname, lname):
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
x = Person("John", "Doe")
x.printname()
Bola Sinf yaratish
Funksionallikni boshqa sinfdan meros qilib oladigan sinf yaratish uchun asosiy sinfni bola sinfini yaratishda parametr sifatida yuboring.
class Student(Person):
pass
Eslatma: pass
Agar sinfga boshqa xususiyat yoki usullarni qo'shishni xohlamasangiz , kalit so'zdan foydalaning . Ushbu so'zdan keyingi barcha elementni (sinf ichidagi) ishlashidan to'xtatadi va Joriy Sinf faoliyatini to'xtatadi.
Endi Student bilan Person sinfi bilan bir xil xususiyatga ega.
x = Student("Furqat", "Masharipov")
x.printname()
__init__() funktsiyasini qo'shish
Yuqorida biz siz bilan ota xususiyatlarni meros qilib olgan bola sinfini yaratdik, __init__() funksiyasini pass kalit so'zi o'rniga yozamiz.
class Student(Person):
def __init__(self, fname, lname):
# bir qancha komandalar
Eslatma: __init__() funksiyasini qo'shsangiz ota-sinfdagi __init__() funksiyasini meros qilib olmaydi.
Ota-Sinf funksiyasini saqlab qolish uchun bola-sinfida ota sinf __init__() funksiyasini biriktirib ketishimiz kerak bo'ladi.
class Student(Person):
def __init__(self, fname, lname):
Person.__init__(self, fname, lname)
super() funksiyasidan foydalaning
Python dasturlash tilida shuningdek super() bolalar sinfini ota sinfidan barcha usullar va xususiyatlarini meros qilib oladigan funksiyaga ega.
class Student(Person):
def __init__(self, fname, lname):
super().__init__(fname, lname)