Наследование классов в Python, задача

Опишите на ООП взаимодействие студента, ментора, код-ревьюера и куратора.Все эти люди — люди, поэтому создадим базовый класс Human, со свойством name (у каждого человека должно быть имя) и методом answer_question() для ответов на вопросы.По умолчанию объект Human будет отвечать на любой вопрос так: «Очень интересный вопрос! Не знаю.»От класса Human унаследуем классы StudentMentorCodeReviewer и Curator.Student должен уметь задавать вопросы. Реализуйте в классе Student метод ask_question(Human, question). При вызове этот метод должен:

  1. Напечатать на экране вопрос в формате <имя человека, которому задаём вопрос>, <текст вопроса>
  2. Задать вопрос question человеку, объекту класса Human. Имя объекта, которому адресован вопрос, передаётся при вызове метода ask_question().

Объекты классов MentorCodeReviewer и Curator должны уметь отвечать на вопросы при вызове метода answer_question(). Задан непредусмотренный вопрос — для него подойдет ответ по умолчанию. После того, как вы допишете код, ваша программа должна вывести на экран такой текст:

Марина, мне грустненько, что делать?
Держись, всё получится. Хочешь видео с котиками?

Ира, мне грустненько, что делать?
Отдохни и возвращайся с вопросами по теории.

Евгений, когда каникулы?
Очень интересный вопрос! Не знаю.

Евгений, что не так с моим проектом?
О, вопрос про проект, это я люблю.

Виталя, как устроиться на работу питонистом?
Очень интересный вопрос! Не знаю.

Ира, как устроиться работать питонистом?
Сейчас расскажу. 

Подсказка
Чтобы вызвать метод answer_question() у родительского класса, напишите super().answer_question(question)

Код:

class Human:
    def __init__(self, name):
        self.name = name
    def answer_question(self, question):
        print('Очень интересный вопрос! Не знаю.')
    def __str__(self):
        return f'{self.name}'
 
class Student(Human):
    def ask_question(self, someone, question):
        print(f'{someone}, {question}')
        someone.answer_question(question)
        print()  




Комментарии: 1
  1. aleksey

    class Human:
    def __init__(self, name):
    self.name = name

    def answer_question(self, question):
    print(‘Очень интересный вопрос! Не знаю.’)
    def __str__(self):
    f'{self.name}’

    class Student(Human):
    def __init__(self, name):
    super().__init__(name)
    def ask_question(self, someone, question):
    self.someone = someone
    self.question = question
    print(f»{someone.name}, {question}»)
    someone.answer_question(question)
    print()

    class Mentor(Human):
    def __init__(self, name):
    super().__init__(name)
    def answer_question(self, question):
    if question == ‘как устроиться работать питонистом?’:
    print(‘Сейчас расскажу.’)
    elif question == ‘мне грустненько, что делать?’:
    print(‘Отдохни и возвращайся с вопросами по теории.’)
    else:
    super().answer_question(question)

    class Curator(Human):
    def __init__(self, name):
    super().__init__(name)
    def answer_question(self, question):
    if question == ‘мне грустненько, что делать?’:
    print(‘Держись, всё получится. Хочешь видео с котиками?’)
    else:
    super().answer_question(question)

    class CodeReviewer(Human):
    def __init__(self, name):
    super().__init__(name)
    def answer_question(self, question):
    if question == ‘что не так с моим проектом?’:
    print(‘О, вопрос про проект, это я люблю.’)
    else:
    super().answer_question(question)

    student1 = Student(‘Тимофей’)
    curator = Curator(‘Марина’)
    mentor = Mentor(‘Ира’)
    reviewer = CodeReviewer(‘Евгений’)
    friend = Human(‘Виталя’)

    student1.ask_question(curator, ‘мне грустненько, что делать?’)
    student1.ask_question(mentor, ‘мне грустненько, что делать?’)
    student1.ask_question(reviewer, ‘когда каникулы?’)
    student1.ask_question(reviewer, ‘что не так с моим проектом?’)
    student1.ask_question(friend, ‘как устроиться на работу питонистом?’)
    student1.ask_question(mentor, ‘как устроиться работать питонистом?’)

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: