Junior — Middle
Чӣ гуна рафтор мекунад функсияи ивазшуда дар синфи фарзӣ, агар он бо функсияи синфи асосӣ дар Python мувофиқат кунад?
sobes.tech AI
Ҷавоб аз AI
Агар Python-да фарзандаклассда ата-энекласс менен бирдей аталыштагы функция аныкталса, ошол функцияны фарзандакласс объектисинде чакырганда, кайра аныкталган версия колдонулат. Бул методду кайра аныктоо (method overriding) деп аталат. Мындан ары, фарзандакласс ата-энеклассын жүрүм-турумун өзгөртүп же кеңейте алат.
Мисал:
class Base:
def greet(self):
print("Амансызбы ата-энекласс")
class Child(Base):
def greet(self):
print("Амансызбы фарзандакласс")
obj = Child()
obj.greet() # Чыгуу: Амансызбы фарзандакласс
Эгер ата-энекласс методун чакыргыңыз келсе, super() колдонсоңуз болот:
class Child(Base):
def greet(self):
super().greet()
print("Кошумча фарзандакласс")