elif alternative
Chris Rebert
clp2 at rebertia.com
Thu Sep 17 18:16:25 EDT 2009
On Thu, Sep 17, 2009 at 3:09 PM, gert <gert.cuykens at gmail.com> wrote:
> On Sep 17, 9:48 pm, Chris Rebert <c... at rebertia.com> wrote:
>> On Thu, Sep 17, 2009 at 12:38 PM, gert <gert.cuyk... at gmail.com> wrote:
>> > Can anybody show me a better looking alternative for this elif
>> > structure ?
>>
>> Use a dictionary with functions as values. For example:
>>
>> #untested obviously
>> def admin_remove(db, v, gid):
>> db.execute("DELETE FROM appointments WHERE aid=?",(v['aid'],))
>>
>> def guest_remove(db, v, gid):
>> db.execute("DELETE FROM appointments WHERE aid=? AND
>> uid=?",(v['aid'],s.UID))
>>
>> cmd_gid2func = {('remove', 'admin') : admin_remove, ('remove',
>> 'guest') : guest_remove}
>>
>> func = cmd_gid2func[(v['cmd'], s.GID)]
>> func(db, v, s.GID)
>>
>
> What about s.UID ?
I only covered a couple cases since this was just to give you an
example of the approach.
You'll need to adjust the parameters the functions take and the
elements in the key tuples of the dictionary to account for your full
body of code.
Cheers,
Chris
--
http://blog.rebertia.com
More information about the Python-list
mailing list