On Tue, Jan 15, 2013 at 8:56 PM, rh <richard_hubb...@lavabit.com> wrote: > I have this working and I am curious to know how others do same. > > class Abc(object): > def __init__(self): > pass > def good(self): > print "Abc good" > def better(self): > print "Abc better" > > urls = {'Abc':'http://example.com'} > strings = ['good', 'better'] > > for s in urls: > o = eval("%s()" % s) > for string in strings: > eval("o.%s()" % string) > > > Yes, 'spose symbolic references is what these are.... > > While I'm at it what magic could I use to print "the-class-I-am-in good" > instead of hard-coding "Abc good"? I tried __class_ and self.__class__ > > --
Rather than using eval, you can grab the class out of globals(), and then use getattr to get the methods. >>> for s in urls : ... o = globals()[s]() ... for method in strings : ... getattr(o, method)() ... Abc good Abc better And for getting the class name, the class has a __name__ attribute. So you could use self.__class__.__name__. -- http://mail.python.org/mailman/listinfo/python-list