42 lines
974 B
Python
42 lines
974 B
Python
from database import fetch_question, update_correct
|
|
|
|
class Question(object):
|
|
"""
|
|
This is the throwaway container types for questions.
|
|
It basically stores the question and the answer and
|
|
handles the database access.
|
|
|
|
One can fetch a (semi random (see database.fetch_question))
|
|
question from the database using Question.fetch()
|
|
and use submit_question() to both update the database and
|
|
check whether the answer was correct.
|
|
"""
|
|
__slots__ = ["question", "answer"]
|
|
|
|
def __init__(self, question, answer):
|
|
self.question = question
|
|
self.answer = answer
|
|
|
|
@classmethod
|
|
def fetch(cls):
|
|
data = fetch_question()
|
|
return cls(data[0], data[1])
|
|
|
|
def submit_answer(self, answer):
|
|
"""
|
|
Check whether ``answer`` is correct,
|
|
update the database accordingly and
|
|
return ``True`` if the answer was correct,
|
|
``False`` otherwise.
|
|
"""
|
|
|
|
correct = -1
|
|
if(answer == self.answer):
|
|
correct = 1
|
|
|
|
update_correct(self.question, correct)
|
|
|
|
return correct > 0
|
|
|
|
|