On Jul 20, 5:40 am, Bruno Desthuilliers <bruno. [EMAIL PROTECTED]> wrote: > Aahz a écrit : > > > In article <[EMAIL PROTECTED]>, > > Bruno Desthuilliers <[EMAIL PROTECTED]> wrote: > >> To make a long story short: Python 2.2 introduced a new object model > >> which is more coherent and more powerful than the original one. The old > >> one was kept so far for compatibility reasons, but there's absolutely no > >> reason to use it no more since "new-style" classes can do anything > >> "Classic" classes did and much more. IOW, don't even bother with > >> old-style classes. > > > And I'll make my usual knee-jerk response disagreeing with this. For > > more info, search groups.google.com. > > And you'll still make it harder for newcomers to understand why a lot of > things don't work correctly with their classes. How helpful... > > Aahz, the object model switch happened *years* ago, and it's quite clear > that old style classes have been kept so far for compatibility reasons > only. It's obvious that one doesn't gain *anything* - except compat with > years-old pre-2.2 versions of Python - using old-style classes. So *why* > on earth are you still *advocating* the use of old style classes ??????
FWIW, I am not advocating old style classes and I rarely (if ever) use them in new code, but I occasionally miss the following feature, which by the way disproves the assertion that "new-style classes can do anything Classic classes did": class Classic: pass class NewStyle(object):pass for o in Classic(),NewStyle(): o.__str__ = lambda: 'Special method overriding works on instances!' print '%s object: %s' % (o.__class__.__name__, o) George
-- http://mail.python.org/mailman/listinfo/python-list