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.
object
is an identifier that refers to a builtin type.
Unlike many other languages, there are no primitive types in Python. Everything is an object, including all data types.
I'm not sure why you expected inheriting from randomobject
to work.
object
is the base class from which you inherit when creating a new-style class in Python 2.