bruno at modulix wrote: > looping wrote: > > Peter Hansen wrote: > > > >>Georg Brandl wrote: > >> > >>>class C(): > >>> > >>>is meant to be synonymous with > >>> > >>>class C: > >>> > >>>and therefore cannot create a new-style class. > >> > >>I think "looping" understands that, but is basically asking why anyone > >>is bothering with a change that involves a part of the language that is > >>effectively deprecated. In other words, class(): never used to be > >>valid, so why make it valid now? > >> > >>-Peter > > > > > > Exact. > > But I think that if we make "class C():" a synonym of "class > > C(object):", it will save lot of keystrokes ;-) > > Since the class statement without superclass actually creates an > old-style class, I'd expect the "class MyClass():" variant to behave > the same. Sacrifying readability and expliciteness just to save half a > dozen keystrokes is not pythonic IMHO. >
I don't think readability suffer and expliciteness could sometimes be sacrified to simplify the life of developer: ex "abcd"[0:3] -> "abcd"[:3]. And for newbies, the somewhat magic behavior of the "object" superclass is not so clear even that it is very explicit. When I write script I don't use new-style class cause is bother me to type "(object)" when I don't need their features. But in an other hand, I believe that new-style class are faster to instanciate (maybe I'm wrong...). So this new syntax is a good way to boost their uses without bother with compatibility of existing code IMHO. Well I stop to argue now and let Python Dev make their (very good) job. -- http://mail.python.org/mailman/listinfo/python-list