Do we still need to inherit from "object" to create new-style classes?

Terry Reedy tjreedy at udel.edu
Tue Jun 21 13:30:28 EDT 2011


On 6/20/2011 9:26 PM, John Salerno wrote:
> I can't quite seem to find the answer to this anywhere. The book I'm
> reading right now was written for Python 3.1 and doesn't use (object),
> so I'm thinking that was just a way to force new-style classes in 2.x
> and is no longer necessary in 3.x. Is that right?
>
> (The documentation doesn't mention object anymore,

Lib ref 2. builtin functions:
"object()
Return a new featureless object. object is a base for all classes. It 
has the methods that are common to all instances of Python classes. This 
function does not accept any arguments.

Note
object does not have a __dict__, so you can’t assign arbitrary 
attributes to an instance of the object class.
"

> but elsewhere on
> the Python website it says the documentation hasn't been updated for
> new-style classes yet, hence my confusion.)

What page? *It* may need updating ;-).

The core 3.x docs have been updated by removing all reference to 
old-style classes and the modifier 'new-style'. The concept 'new-style' 
only exists in opposition to 'old-style'. 3.x just has classes, and all 
are subclasses of object.

-- 
Terry Jan Reedy





More information about the Python-list mailing list