У нас есть следующая структура класса:
class NamePrinter():
def phone():
print(self.name)
def email():
print(self.name)
class PhoneCaller(NamePrinter):
def __init__(self, name, number, mail):
self.name = name
self.number = number
self.mail = mail
def phone(self):
# here, NamePrinter.phone() should be executed
compose_number(self.number)
def email(self):
# here, NamePrinter.email() should be executed
compose_mail(self.mail)
Я хочу, чтобы NamePrinter.phone()
выполнялся при вызове PhoneCaller.phone()
, без упоминания super.phone()
в PhoneCaller.
Идея состоит в том, что единственная модификация, которая будет применена к PhoneCaller для того, чтобы он выполнял поведение NamePrinter при выполнении PhoneCaller.phone, состоит в том, что PhoneCaller наследует от родительского элемента, и ничего более.В частности, нет необходимости изменять какой-либо отдельный метод PhoneCaller.
Проще говоря:
- PhoneCaller наследуется от NamePrinter => имя печатается перед составлением номера
- PhoneCaller не наследуется от NamePrinter => имя не печатается
- Нет необходимости возиться с PhoneCaller.phone
Возможно ли это?