Difference between object and instance in python?

oop, python

Solution

This is the difference between new-style and old-style classes, which is explained in great detail in the documentation. Basically, in Python 2.x you should ensure you always inherit from object so that you get a new-style class. In Python 3, old-style classes have gone away completely.

Problem

This happens in python2.7 I am working on the idea of meta class in python, almost all the tutorial refer object as instance of a class, in python. However, when playing with the class A(): form of defining a class, I saw this: ``` class ClsDef1(): pass C1 = ClsDef1() print C1 <__main__.ClsDef1 instance at 0x2aea518> class ClsDef2(object): pass C2 = ClsDef2() print C2 <__main__.ClsDef2 object at 0x2ae68d0> ``` This means when create a instance from a class that is not inherent from object, the instance is an instance, but when a class is inherent from object, the instance of the class is an object? Could anyone explain the difference? In real life which one should I use? Thanks!

Original source

Related problems