Сформулируйте определение "расширение класса"
Я понимаю, что переопределение и расширение это два разных понятия.
Переопределение - это свойство класса, позволяющее изменить реализацию метода(атрибута), предоставляемого одним из его базовых классов. Т.е., пусть имеется 2 класса (базовый и subclass):
class Person:
def go(self):
print('go')
def sleep(self):
print('sleep')
class doctor(Person):
def go(self):
print('doctor go')
Здесь мы переопределили метод go.
А с помощью расширения мы можем расширить возможности родительского класса
class Person:
def go_1(self):
print('go')
def sleep(self):
print('sleep')
def go(self):
if hasattr(self,'go_2'):
self.go_2()
else:
self.go_1()
class doctor(Person):
def go_2(self):
print('doctor go')
P=Person()
D=doctor()
P.go()
D.go()
Может кто-нибудь дать определение понятию?