Skip to content
Greg Malcolm edited this page May 6, 2013 · 16 revisions

Inspecting the Class Type

Some koans may ask you for the __class__ attribute of an object:

AssertionError: '-=> FILL ME IN! <=-' != <type 'str'>

What does __class__ attribute do? It tells you what the class type is for a given object (on the left hand side of the period). Let's look at that for a string object:

To the Python Console (IDLE) robin! And run this: "batman".__class__

!["batman".class] (http://i442.photobucket.com/albums/qq150/gregmalcolm/ScreenShot2013-05-02at75509AM.png)

Notice it returns this: <type 'str'>

Which is the same thing we're seeing from the koans runner:

AssertionError: '-=> FILL ME IN! <=-' != <type 'str'>

So "batman" == <type 'str'> then right?

Not exactly...

!["batman" == <type 'str'>] (http://i442.photobucket.com/albums/qq150/gregmalcolm/ScreenShot2013-05-02at80309AM.png)

"batman".__class__ is DISPLAYED as <type 'str'>, but the value is actually the class name. Which is just str. NO QUOTES!

"batman" == str

Class Types With Namespaces

Some classes are more confusing to inspect using class. For example when inspecting Exception classes. To demonstrate we need to capture an exception object from the python console:

catching an exception

Clone this wiki locally