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