שאלה פתוחה
שיעור 5 מתוך 11 בקורס מחולל חידונים – פרויקט OOP ב-Python של Coddy.
אתגר
קלצרו מחלקה OpenQuestion שיורשת מ־Question ומממשת את הבנאי ואת המתודות print ו־check של המחלקה Question.
בנאי - אמור לקבל מחרוזת ורשימה של מחרוזות ולשמור אותן בשדות question ו־answers, בהתאמה.
מתודת print - מדפיסה את השאלה בפורמט '[?] {question}'
לדוגמה, אם השאלה היא 'Are you experienced programmer?', המתודה אמורה להדפיס '[?] Are you experienced programmer?'
מתודת check - מחזירה True אם מחרוזת הקלט (התשובה) כלולה בשדה answers, אחרת False.
לדוגמה, עבור answers = ['yes', 'maybe'], אם check('yes') מחזירה True, ואם check('nope') מחזירה False
נסו בעצמכם
from abc import ABC, abstractmethod
class Question(ABC):
@abstractmethod
def print(self):
pass
@abstractmethod
def check(self, answer):
pass
class YesNoQuestion(Question):
def __init__(self, question, answer):
self.question = question
self.answer = answer
def print(self):
print('[?] ' + self.question + ' (yes/no)')
def check(self, answer):
return (answer == 'yes' and self.answer) or \
(answer == 'no' and not self.answer)
כל השיעורים ביחידה מחולל חידונים – פרויקט OOP ב-Python
תרגלו בעצמכם: קומפיילר Python אונליין