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?
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.