Why new Python 2.5 feature "class C()" return old-style class ?

Christophe chris.cavalaria at free.fr
Fri Apr 14 09:26:54 EDT 2006


Aahz a écrit :
> In article <mailman.4386.1144773906.27775.python-list at python.org>,
> Felipe Almeida Lessa  <felipe.lessa at gmail.com> wrote:
> 
>>Em Ter, 2006-04-11 Ã s 07:17 -0700, Aahz escreveu:
>>
>>>Can, yes.  But should it?  The whole point of adding the () option to
>>>classes was to ease the learning process for newbies who don't
>>>understand why classes have a different syntax from functions.  Having
>>>
>>>class C(): pass
>>>
>>>behave differently from
>>>
>>>class C: pass
>>>
>>>would be of no benefit for that purpose.
>>
>>Why should a newbie use an old-style class?
> 
> 
> Because that's the default.  Because lots of existing code still uses
> classic classes, so you need to learn them anyway.  Because you can't use
> new-style classes in code intended for 2.1 or earlier; because of the
> changes made in 2.3, I don't particularly recommend new-style classes for
> 2.2.  Because even the second edition of _Learning Python_ (targeted at
> Python 2.3) doesn't cover new-style classes much, so I'm certainly not
> alone in believing that new-style classes are better avoided for newbies.

Well, old-style classes are perfect to confuse the newbie. After all, 
there's nothing like adding a "property" in a class and wondering why 
it does not work as expected.

What would be a language without horrible pitfalls ? Newbies would have 
it easy and they have no right for an easy language !



More information about the Python-list mailing list