Search code examples
pythonclass-attribute

Why can't I access the instance.__class__ attribute in Python?


I'm new to Python, and I know I must be missing something pretty simple, but why doesn't this very, very simple code work?

class myClass:
    pass

testObject = myClass
print testObject.__class__

I get the following error:

AttributeError: class myClass has no attribute '__class__'

Doesn't every object in Python have a __class__ attribute?


Solution

  • I think I realized my mistake. I thought that the code testObject = myClass was creating a new instance/object of the class, but it was actually assigning a reference to the class itself. I changed the code to:

    class myClass: 
        pass 
    
    testObject = myClass() 
    print testObject.__class__ 
    

    and it now works as I was expecting