Andrew,

> > I'm parsing a simple file and given a line's keyword, would like to call 
> > the equivalently named function.

> No, actually, you wouldn't :-)  Doing so means that if your programs input 
> specification ever changes, you have to rename all of the relevant functions. 
> Moreover, it leaves open the possibility that you might wind up calling a 
> function you didn't intend.

I'm using Arnaud Delobelle's technique (see below) to insure that only
the appropriate methods are called. A great, practical example of a
decorator.

<snip>
functions = {}

def register(func):
    functions[func.__name__] = func
    return func

@register
def foo(): print "Foo!"

@register
def bar(): print "Bar!"

>>> functions
{'foo': <function foo at 0x6f2f0>, 'bar': <function bar at 0x6f330>}
>>> functions['bar']()
Bar!
</snip>

Thanks for your feedback,

Malcolm
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to