[Tutor] class Knights vs class Knights(object)

Patrick Sabin patrick.just4fun at gmail.com
Sat Nov 7 21:35:36 CET 2009


Wayne Werner wrote:

> and my question is what is the difference between the two? Is there a 
> difference other than one is an object the other is an instance? I 
> googled "python object vs. instance" and didn't find anything terribly 
> useful.

Yes there is a difference. One class inherits from object, the other 
doesn't. You may want to try to check this, e.g.:

issubclass(Knight, object)

So the first keyword you may want to google for is inheritance.

The second keyword is old/new-style classes.

Python 2 changed the way how classes work, but to be backward compatible 
the old mechanism still remained. If you want new style classes inherit
from object.

If you want to understand the details you may want to look up what 
metaclasses - your third keyword - are, old-style classes have the 
metaclass classobj, new-style classes type. You can check this using the 
builtin type-function.

Beware that this is python 2 stuff. In python 3 class X: and class 
X(object): are the same.

- Patrick


More information about the Tutor mailing list