On Jun 16, 7:43 pm, Gary Herron <gher...@islandtraining.com> wrote: > thebjorn wrote: > > I'm storing the path to functions in a database and now I'd like to > > get a reference so I can execute them. > > > I looked briefly at the imp module and got very confused... Currently > > I'm doing this: > > > def import_object(path): > > module, obj = path.rsplit('.', 1) > > exec "from rootpkg.%s import %s as fn" % (module, obj) > > return fn > > > function = import_object('mypackage.mymodule.myfunction') > > > this is happening in a trusted environment, so I'm not worried about > > malicious code. > > > Are there more elegant ways of doing this (ie. without exec)? > > Yes. Look at the __import__ builtin function, [...]
Thanks, that is much better: def import_object(path): module, obj = path.rsplit('.', 1) m = __import__(module, fromlist=['rootpkg']) return getattr(m, obj) function = import_object('mypackage.mymodule.myfunction') > Gary Herron Bjorn -- http://mail.python.org/mailman/listinfo/python-list