I can't seem to find a way to do something that seems straighforward, so I must have a mental block. I want to reference an object indirectly through a variable's value.
Using a library that returns all sorts of information about "something", I want to provide the name of the "something" via a variable (command line argument). The something is a class in the library and I want to instantiate an object of the class so I can start querying it. I can't figure out how to pass the name of the class to the library. Or, put another way, I can't figure out how to indirectly reference the value of the command line argument to create the object. To make it clearer, it's roughly equivalent to this in bash: Sun="1AU" ; body=Sun; echo ${!body} --> outputs "1AU". command line: $ ./ephemeris.py Moon code: import ephem import optparse # various option parsing (left out for brevity), # so variable options.body contains string "Moon", # or even "Moon()" if that would make it easier. # Want to instantiate an object of class Moon. # Direct way: moon1 = ephem.Moon() # Indirect way from command line with a quasi bashism that obviously fails: moon2 = ephem.${!options.body}() Can someone point me in the right direction here? (The library is PyEphem, an extraordinarily useful library for anyone interested in astronomy.) Many thanks, -- NickC -- http://mail.python.org/mailman/listinfo/python-list