Move dictionary from instance to class level
Frank Millman
frank at chagford.com
Wed Aug 26 05:22:21 EDT 2009
On Aug 26, 10:54 am, Chris Rebert <c... at rebertia.com> wrote:
> On Wed, Aug 26, 2009 at 1:22 AM, Frank Millman<fr... at chagford.com> wrote:
>
> A
>
> class MyClass(object):
> def on_message_received(self, msg):
> self.method_dict[msg](self)
>
> def method_0(self):
> print 'in method_0'
>
> def method_1(self):
> print 'in method_1'
> method_dict
>
> method_dict = {0: method_0, 1: method_1}
> #note this comes *after* the methods in question have been defined
>
Thanks, Chris. This is much better.
> Is there some reason you aren't using a list instead of a dict?
> e.g. method_dict = [method_0, method_1, method_2, etc]
>
> For that matter, why are you associating methods with integers in the
> first place?
>
I actually use constants to define my messages, like this -
(MESSAGE_ONE
,MESSAGE_TWO
,MESSAGE_THREE
) = xrange(3)
I can then refer to the messages by their description, but internally it
uses integers.
Frank
More information about the Python-list
mailing list