introspection?

Phil Frost indigo at bitglue.com
Wed Aug 18 18:56:08 EDT 2004


>>> class C:
...  pass
>>> C().__class__.__name__
'C'

That is, __class__ of an instance gives you the class object of which
it's an instance, and __name__ gives you the identifier that represents
the class. Classes also have a __module__ attribute.

On Wed, Aug 18, 2004 at 02:43:46PM -0700, Jim Benson wrote:
> 
> newbie question here:
> 
> How does one get the class and method name from within
> a method? i.e here i have obviously hardcoded the class 
> and method name:
> 
> class JJTest:
> 
>     def methodA(self):
> 
>         print 'ERROR: in JJTest.methodA'
> 
> >>> from jjtest import JJTest
> >>> jj = JJTest()
> >>> jj.methodA()
> ERROR: in JJTest.methodA
> >>>
> 
> The Java way of doing this would be something like:
> 
> System.out.println("ERROR in: " + this.getClass().getName());
> 
> I suspect that there are attributes that one can use to do 
> something similar in Python. 
> 
> If any of you Python experts would let me know how to do this in
> Python, i would appreciate it.
> 
> Thanks,
> 
> Jim



More information about the Python-list mailing list