Home > Back-end >  The instance relation between type and object in python?
The instance relation between type and object in python?

Time:11-14

Show class relation between type and object:

issubclass(type,object)
True
issubclass(object,type)
False

It is clear that type derived from object,object is the father class of type,type is the son class of object.

isinstance(type,object)
True
isinstance(object,type)
True

How to understand that type is the instance of object and vice versa ?

CodePudding user response:

Useful Definition

isinstance(object, classinfo)

Return True if the object argument is an instance of the classinfo argument, or of a (direct, indirect or virtual) subclass thereof.
https://docs.python.org/3.9/library/functions.html?highlight=isinstance#isinstance

1) type is an instance of object

  • All data is represented by objects and object is a base for all classes

Objects are Python’s abstraction for data. All data in a Python program is represented by objects or by relations between objects.
https://docs.python.org/3.9/reference/datamodel.html#types

object is a base for all classes.
https://docs.python.org/3.9/library/functions.html?highlight=object#object

2) object is an instance of type

  • object is a type object. In other words, object is of type, type

Type Objects
Type objects represent the various object types. An object’s type is accessed by the built-in function type()
https://docs.python.org/3.9/library/stdtypes.html?highlight=subclass#type-objects

  • type(object) # returns type

  • type(type) # returns type

  • object.__class__ # returns type

  • type.__class__ # returns type

  • Which helps us understand how isInstance(object, type) will return True.

  • An intuitive way to think about this is that the object object is of type type but object is not a subclass of type because it doesn't inherit from type

  • Related