[EMAIL PROTECTED] said unto the world upon 06/01/2007 10:46 AM: > I think I may have sent an incomplete version of this question a moment ago > (sorry). Here is the complete question: > > I'm designing something along the lines of a flash card program. It's mostly > just an exercise in learning Python, but I'd like it to be at least > marginally usable when I'm done. So I'm looking for comments/suggestions on > the key pieces of the > design: the questions and the flash card deck: > Psudo-code of current design: > > class Deck(): > """Provides managment and informational functions about a set of > questions to be asked > methods incldue: > __init__(questions) -- takes a list of question and creates a > new deck with these questions. > add_question(self,question) -- Adds a question to the current > deck > remove_question(self,question) -- returns True if the question > was removed, False otherwise > get_question() -- Returns the next unanswered question in the > deck > get_stats() -- returns a tuple containing: number_asked, > number_correct, number_remaining > shuffle_deck() -- shuffles the order of the remaining > questions. > Deck Overrived the __len__ function so that the len returned is > the number of questions in the deck." > > > class Question(): > """Provides questions to be asked > methods: > __init__(self,question,answer) -- question string representing the > question. > answer can > be a text string, a tupple (for multiple correct answers) > or an > object implementing an is_correct() method that returns a boolean > > check_answer(self,answer) -- tests to see if the answer is correct and > returns a boolean > """ > > > Mostly I'm wondering, is this over-kill? The idea is to allow for the deck to > be used for as wide a variety of purposes as possible. Also, I want to make > it easy to write code that generates decks. Is this design over-kill? > > Any comments/suggestions welcome. > > Thanks, > > David > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor >
David, I'd make Deck and Question subclass object so as to have new-style classes, as in: class Deck(object): # code here If you don't know about the difference between classic classes and new-style, you needn't worry about it for now. There are a number of ways in which new-style are better, though. I also have a suggestion that you might want to think about after you get the basic functionality working. When I did something similar, I used the pickle module make my Questions persistent between sessions, and had each Question keep track of how many times it has been asked and correctly answered. I then had my Deck.get_question pick which Question to ask in a way that favoured both Questions that had been rarely asked, and those that had the highest error rates. Best, Brian vdB _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor