[Tutor] How to put my functions in an array

Alan Gauld alan.gauld at freenet.co.uk
Thu Dec 30 09:08:05 CET 2004


> Thanks alot Jeff. This worked for me:
> 
> formhandlers={}
> for verb,verb_desc in PROVISION_ACTIONS:
> try:
> formhandlers[verb]=globals()[verb]
> except KeyError:
> pass


I'm slightly confused about why you need to do this?
You create a list of names (PROVISION_ACTIONS), then 
you add the corresponding functions to a dictionary 
by looking the names up in the globals dictionary. 
But since uyou know the names of the functions why 
not just add them to the actions list in the first place?

PROVISION_ACTIONS = [('foo',foo),('bar',bar)]

formhandlers = {}
for name,action in PROVISION_ACTIONS:
   formhandlers[name] = action

Or even easier do it all in one step:

formhandlers = { 'foo':foo,
                 'bar',bar,
                 etc...
               }

Why do you need the globals lookup when you know the 
names of the functions already?

I'm missing something...

Alan G.


More information about the Tutor mailing list