"thinkofwhy" <[EMAIL PROTECTED]> wrote: > Try a dictionary: > > def funcA(blah, blah) > def funcB(blah, blah) > def funcC(blah, blah) > functions = {'A': funcA, 'B': funcB, 'C': > funcC} > user_func = 'A' > functions[user_func] #execute function
Python has a neat concept for making this easy :^) it is called a class. class MyFunctions(object): def funcA(self, param1, param2): print "FA " + param1 + " " + param2 def funcB(self, param1, param2): print "FB " + param1 + " " + param2 def funcC(self, param1, param2): print "FC " + param1 + " " + param2 def defaultFunc(self, *args): print "Command not recognised" def doCommand(self, cmd, *args): return getattr(self, 'func'+cmd, self.defaultFunc)(*args) functions = MyFunctions() result = functions.doCommand('A', 'foo', 'bar') You have to add an extra 'self' argument to each function (or make it a staticmethod), but you could always use it to store state without resorting to globals. -- http://mail.python.org/mailman/listinfo/python-list