I want to do something like the following (let's pretend that this is in file 'driver.py'):
#!/bin/env python import sys def foo(): print 'foo' def bar(arg): print 'bar with %r' % arg def main(): getattr(driver, sys.argv[1])(*sys.argv[2:]) if __name__=='__main__': main() Essentially what I'm trying to get at here is dynamic function redirection, like a generic dispatch script. I could call this as python driver.py foo or python driver.py bar 15 and at any time later I can add new functions to driver.py without having to update a dispatch dict or what-have-you. The problem is, 'driver' doesn't exist in main() line 1. If I 'import driver' from the command line, then getattr(driver, ...) works, but it's not bound here. Is there any way around this? Can I somehow scope the 'current module' and give getattr(...) an object that will (at run time) have the appropriate bindings? Thanks in advance for all advice! Mike -- http://mail.python.org/mailman/listinfo/python-list