Tim Cook wrote:
I guess I can classify my application(s) as more procedural than
anything else. But I have a question about the best way to handle
something in Python.
>
When given a mapping of keywords, I want to call a function based on a
certain keyword found when parsing a text file. The mapping looks like
this:
>
definClassMap={ 'SECTION':'bldS ection','COMPOS ITION':'bldComp osition','OBSER VATION':'bldObs ervation','ITEM _TREE':'bldItem Tree'}
>
So if the text file contains 'ITEM_TREE' I want to call bldItemTree
which creates an instance of the class ItemTree.
>
I currently use an if ..., elif ... construct.
Is there a better, more efficient, more Pythonic way of doing this?
anything else. But I have a question about the best way to handle
something in Python.
>
When given a mapping of keywords, I want to call a function based on a
certain keyword found when parsing a text file. The mapping looks like
this:
>
definClassMap={ 'SECTION':'bldS ection','COMPOS ITION':'bldComp osition','OBSER VATION':'bldObs ervation','ITEM _TREE':'bldItem Tree'}
>
So if the text file contains 'ITEM_TREE' I want to call bldItemTree
which creates an instance of the class ItemTree.
>
I currently use an if ..., elif ... construct.
Is there a better, more efficient, more Pythonic way of doing this?
function names!
def bldSection(): <whatever>
....
def bldItemTree(): <whatever else>
class_map={
'SECTION':bldSe ction,
'COMPOSITION':b ldComposition,
'OBSERVATION':b ldObservation,
'ITEM_TREE':bld ItemTree, # trailing comma allows easy additions
}
for word in parselist:
try;
class_map[word]()
except KeyError:
<whatever for non-keys>
tjr
Comment