class Classname(object), what sort of word is 'object' in Python?

Bentley4 picture Bentley4 · Apr 6, 2012 · Viewed 21.1k times · Source

When I create a module with its sole content:

class Classname(randomobject):
    pass

And I try to run the .py file of the module the interpreter says that randomobject is not defined.

But when I do:

class Classname(object):
    pass

The module runs just fine. So if object is not a keyword, then what is it?

Answer

Marcin picture Marcin · Apr 6, 2012

object is a (global) variable. By default it is bound to a built-in class which is the root of the type hierarchy.

(This leads to the interesting property that you can take any built-in type, and use the __bases__ property to reach the type called object).

Everything built-in that isn't a keyword or operator is an identifier.