From: Karl Wiberg Date: Tue, 01 Dec 2009 07:26:50 GMT Subject: Re: [PATCH 3/6] stg mail: make __send_message do more Message-ID: In-Reply-To: <20091130235935.GK12733@ldl.fc.hp.com> On Tue, Dec 1, 2009 at 12:59 AM, Alex Chiang wrote: > * Karl Wiberg : > > > You could consolidate the two dictionaries like this, to avoid > > making the same choice twice and make the code more pleasant to > > read: > > > > (build, outstr) = { 1: (__build_cover, 'the cover message'), 4: (__build_message, 'patch "%s"' % args[0]) } > > Hm, I don't think that's valid. I ended up doing something like > this: > > d = { 'cover': (__build_cover, 'the cover message'), 'patch': (__build_message, 'patch "%s"' % args[0]) } > (build, outstr) = d[type] Duh. That's what I get for posting untested code. It should be (build, outstr) = { 1: (__build_cover, 'the cover message'), 4: (__build_message, 'patch "%s"' % args[0]) }[len(args)] That is, we create a dictionary only to immediately use it once, without ever explicitly storing a reference to it. -- Karl Wiberg, kha@treskal.com subrabbit.wordpress.com www.treskal.com/kalle