Dennis Lee Bieber wrote: > On Tue, 01 Aug 2006 10:56:52 -0500, Kirk Strauser <[EMAIL PROTECTED]> > declaimed the following in comp.lang.python: > >> Larry Bates wrote: >> >>> print print b.__class__.__name__ gives what you want >> That doesn't seem to do it, though. Here's the result of importing a module >> from my company's internally-developed library: >> >>>>> from Daycos.TableCopier.copyfro import StateProcessor >>>>> print StateProcessor.__class__.__name__ >> type >> >> I'm looking for something that would print 'StateProcessor' but am not >> having much luck. > > And what is "StateProcessor" > >>>> class SP(object): > ... pass > ... >>>> print SP.__class__.__name__ > type > > Looks like it is, itself, the class, not something within the class. > >>>> s=SP() >>>> print s.__class__.__name__ > SP >>>> DP = SP >>>> d = DP() >>>> print DP.__class__.__name__ > type >>>> print d.__class__.__name__ > SP
When I do this: class foo(object): pass if __name__=="__main__": a=foo() print a.__class__.__name__ Note: You must do it on instance of the class not the class itself. it prints 'foo' for me. Not exactly sure why you get something very different. I've used this LOTS of times in my code, but I'll admit mostly with old-style classes. -Larry Bates -- http://mail.python.org/mailman/listinfo/python-list