Advertisement
Alaricy

Наследование в ООП 3/3

Jan 24th, 2022
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Human:
  2.     def __init__(self, name):
  3.         self.name = name
  4.  
  5.     # ответ по умолчанию для всех одинаковый, можно
  6.     # доверить его родительскому классу
  7.     def answer_question(self, question):
  8.         print('Очень интересный вопрос! Не знаю.')
  9.  
  10.  
  11. class Student(Human):
  12.     #  метод ask_question() принимает параметр someone:
  13.     #  это объект, экземпляр класса Curator, Mentor или CodeReviewer,
  14.     #  которому Student задаёт вопрос;
  15.     #  параметр question — это просто строка
  16.     #  имя объекта и текст вопроса задаются при вызове метода ask_question
  17.     def ask_question(self, someone, question):
  18.         # напечатайте на экран вопрос в нужном формате
  19.         print(f'{someone.name}, {question}')
  20.         # запросите ответ на вопрос у someone
  21.         someone.answer_question(question)
  22.         print()  # этот print выводит разделительную пустую строку
  23.  
  24.  
  25. class Curator(Human):
  26.     def answer_question(self, question):
  27.         # здесь нужно проверить, пришёл куратору знакомый вопрос или нет
  28.         # если да - ответить на него
  29.         # если нет - вызвать метод answer_question() у родительского класса
  30.         if question=='мне грустненько, что делать?':
  31.             print('Держись, всё получится. Хочешь видео с котиками?')
  32.         else: super().answer_question(question)  
  33. # объявите и реализуйте классы CodeReviewer и Mentor
  34.  
  35. class CodeReviewer(Human):
  36.     def answer_question(self, question):
  37.         # здесь нужно проверить, пришёл куратору знакомый вопрос или нет
  38.         # если да - ответить на него
  39.         # если нет - вызвать метод answer_question() у родительского класса
  40.         if question=='что не так с моим проектом?':
  41.             print('О, вопрос про проект, это я люблю.')
  42.         else: super().answer_question(question)
  43.  
  44. class Mentor(Human):
  45.     def answer_question(self, question):
  46.         # здесь нужно проверить, пришёл куратору знакомый вопрос или нет
  47.         # если да - ответить на него
  48.         # если нет - вызвать метод answer_question() у родительского класса
  49.         if question=='как устроиться работать питонистом?':
  50.             print('Сейчас расскажу.')
  51.         elif question=='мне грустненько, что делать?':
  52.             print('Отдохни и возвращайся с вопросами по теории.')    
  53.         else: super().answer_question(question)
  54.            
  55.            
  56.  
  57. # следующий код менять не нужно, он работает, мы проверяли
  58. student1 = Student('Тимофей')
  59. curator = Curator('Марина')
  60. mentor = Mentor('Ира')
  61. reviewer = CodeReviewer('Евгений')
  62. friend = Human('Виталя')
  63.  
  64. student1.ask_question(curator, 'мне грустненько, что делать?')
  65. student1.ask_question(mentor, 'мне грустненько, что делать?')
  66. student1.ask_question(reviewer, 'когда каникулы?')
  67. student1.ask_question(reviewer, 'что не так с моим проектом?')
  68. student1.ask_question(friend, 'как устроиться на работу питонистом?')
  69. student1.ask_question(mentor, 'как устроиться работать питонистом?')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement