Python Удамшил /Inheritance/
Өөр классаас шинж чанар, аргыг өөртөө агуулсан классыг Удамшил гэнэ.
Parent буюу эцэг классыг үндсэн класс гэнэ.
Child буюу хүү классыг үндсэн классаас үүсмэл буюу удамшсан класс гэнэ.
Create a Parent Class
Аливаа класс нь өөрөө Parent буюу эцэг класс байж чаддаг тул syntax буюу бичиглэл нь бусад класстай ижил байна
Жишээ нь:
Hun гэдэг класс үүсгээд, тус класс ovog, ner, nas гэсэн (property) шинж чанартай байна. Үүнийг abcd method ашиглан хэвлэж үзье.class Hun:
def __init__(self, ovog, ner, nas):
self.etsegNer = ovog
self.huuNer = ner
self.nas = nas
def abcd (self):
print (self.etsegNer, self.huuNer, self.nas)
# Hun класс энэ хүрээд дуусч. Бидний үүсгэсэн abcd method ажиллах гэж байна.
x = Hun("Болд", "Золоо", 37)
x.abcd()
Үр дүн
C:\Users\Pc Name>arrays.py
Болд Золоо 37
Create a Child Class
Удамшсан класс үүсгэхийн тулд функцийг өөр классаас авна, Энэ нь эцэг классын параметрийг хүү классад үүсгэж өгнө гэж ойлгож болно.
Жишээ нь:
Hun
гэдэг классаас удамшсан Oyutan
гэдэг классыг үүсгэж үзье.
class Oyutan(Hun):
pass
Одоо Oyutan
классын шинж чанар, method буюу арга функцүүд нь Hun
класстай ижил болсон.
Жишээ нь:
class Hun:
def __init__(self, ovog, ner, nas):
self.etsegNer = ovog
self.huuNer = ner
self.nas = nas
def abcd (self):
print (self.etsegNer, self.huuNer, self.nas)
class Oyutan(Hun):
pass
x = Oyutan("Чимгээ", "Жигмэд", 37)
x.abcd()
Үр дүн
C:\Users\Pc Name>arrays.py
Чимгээ Жигмэд 37
Add the __init__() Function
Дээрх жишээн дээр бид хүү классын шинж чанаруудыг эцэг классаас авч байсан.pass
түлхүүр үгийн оронд __init__() функцийг ашиглаж бас болно.
Тэмдэглэл: Шинэ объект үүсгэж класс ашиглах бүрт __init__() функцийг автоматаар дууддаг
Жишээ нь:
Oyutan
классад __init__() Функц нэмж үзье.
class Oyutan(Hun):
def __init__(self, ovog, ner, nas):
# Хүү класст шинж чанар нэмсэн жишээ
Та хүү классад __init__() функцийг нэмсэн тохиолдолд эцэг классын __init__() функцээс цаашид удамшихгүй болно.
Тэмдэглэл: Хүү классын __init __ () функц нь эцэг классын __init __ () функцийн удамшлыг хүчингүй болгодог.
Эцэг классын __init__() функцийн удамшлыг хадгалахын тулд Эцэг классын __init__() функцийг дууддаг.
Жишээ нь:
class Hun:
def __init__(self, ovog, ner, nas):
self.etsegNer = ovog
self.huuNer = ner
self.nas = nas
def abcd (self):
print (self.etsegNer, self.huuNer, self.nas)
class Oyutan(Hun):
def __init__(self, ovog, ner, nas):
Hun.__init__(self, ovog, ner, nas)
x = Oyutan("Чимгээ", "Жигмэд", 37)
x.abcd()
Үр дүн
C:\Users\Pc Name>arrays.py
Чимгээ Жигмэд 37
Одоо бид __init__() функцийг амжилттай нэмж, эцгийн удамшлыг хадгалан үлдээж, __init__() функцэд функц нэмж чаддаг боллоо.
Use the super() Function
Python нь super()
функцтэй бөгөөд хүү классад эцэг классын бүх шинж чанар mrthod -г өвлүүлж авах боломжийг олгоно.
Жишээ нь:
class Hun:
def __init__(self, ovog, ner, nas):
self.etsegNer = ovog
self.huuNer = ner
self.nas = nas
def abcd (self):
print (self.etsegNer, self.huuNer, self.nas)
class Oyutan(Hun):
def __init__(self, ovog, ner, nas):
super().__init__(ovog, ner, nas)
x = Oyutan("Чимгээ", "Жигмэд", 37)
x.abcd()
Үр дүн
C:\Users\Pc Name>arrays.py
Чимгээ Жигмэд 37
super()
функцийг ашигласнаар та эцэг классын нэрийг ашиглах шаардлагагүй, энэ нь аргууд нь шинж чанаруудыг эцэг классаас автоматаар удамшуулан авах болно.
Add Properties
Oyutan
классад "elssenJil" шинж чанарыг нэмж үзье.
Жишээ нь:
class Hun:
def __init__(self, ovog, ner, nas):
self.etsegNer = ovog
self.huuNer = ner
self.nas = nas
def abcd (self):
print (self.etsegNer, uuruu.huuNer, uuruu.nas)
class Oyutan(Hun):
def __init__(self, ovog, ner, nas):
super().__init__(ovog, ner, nas)
self.elssenJil = 2001
x = Oyutan("Чимгээ", "Жигмэд", 37)
print(x.elssenJil)
Үр дүн
C:\Users\Pc Name>arrays.py
2001
Дээрх жишээнд 2001 нь хувьсагч байх ёстой. Объект үүсэх үед Oyutan
классад шилжиж "elssenJil" нэртэй шинж чанар нэмж өгнө. Тэгвэл үүнийг __init__() функцийн параметрт нэмж үзье.
Жишээ нь:
class Hun:
def __init__(self, ovog, ner, nas):
self.etsegNer = ovog
self.huuNer = ner
self.nas = nas
def abcd (self):
print (self.etsegNer, self.huuNer, self.nas)
class Oyutan(Hun):
def __init__(self, ovog, ner, nas, year):
super().__init__(ovog, ner, nas)
self.elssenJil = year
x = Oyutan("Чимгээ", "Жигмэд", 37, "2001")
print(x.elssenJil)
Үр дүн
C:\Users\Pc Name>arrays.py
2001
Add Methods
Жишээ нь:
medeelel
гэсэн method-г oyutan
классад нэмээд дуудаж үзье.
class Hun:
def __init__(self, ovog, ner, nas):
self.etsegNer = ovog
self.huuNer = ner
self.nas = nas
def abcd (self):
print (self.etsegNer, self.huuNer, self.nas)
class Oyutan(Hun):
def __init__(self, ovog, ner, nas, year):
super().__init__(ovog, ner, nas)
self.elssenJil = year
def medeelel(self):
print (self.etsegNer, "овогтой", self.huuNer, "нь", self.nas, "-н настай", self.elssenJil, "оны оюутан")
x = Oyutan("Чимгээ", "Жигмэд", 37, "2001")
x.medeelel()
Үр дүн
C:\Users\Pc Name>arrays.py
Чимгээ овогтой Жигмэд нь 37 -н настай 2001 оны оюутан
Хэрэв та эцэг классын /method/ функцтэй ижил нэртэй /method/ функцийг хүү классад нэмэх юм бол эцэг классын /method/ функцийг удамшуулан авах болно.