From: W. Trevor King Date: Tue, 5 Feb 2013 16:05:15 +0000 (-0500) Subject: question: Add Question._state_attributes for easier subclassing X-Git-Tag: v0.1~62 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=b9297cc001a4ea6948be96c39e0b0672982f5e2e;p=quizzer.git question: Add Question._state_attributes for easier subclassing This way subclasses can extend the list instead of overriding __getstate__. --- diff --git a/quizzer/question.py b/quizzer/question.py index 10ae4fd..f2e8ed0 100644 --- a/quizzer/question.py +++ b/quizzer/question.py @@ -6,6 +6,14 @@ def register_question(question_class): class Question (object): + _state_attributes = [ + 'id', + 'prompt', + 'answer', + 'help', + 'dependencies', + ] + def __init__(self, id=None, prompt=None, answer=None, help=None, dependencies=None): if id is None: @@ -26,13 +34,8 @@ class Question (object): type(self).__name__, self.id, id(self)) def __getstate__(self): - return { - 'id': self.id, - 'prompt': self.prompt, - 'answer': self.answer, - 'help': self.help, - 'dependencies': self.dependencies, - } + return {attr: getattr(self, attr) + for attr in self._state_attributes} def __setstate__(self, state): if 'id' not in state: