benhoyt <[EMAIL PROTECTED]> writes: > I realise that double underscores make the language conceptually > cleaner in many ways (because fancy syntax and operator overloading > are just handled by methods), but they don't *look* nice.
That's a good thing, in that it draws attention to the names. The convention is by design: these names will be treated specially, so they should stand out visually to the reader. > A solution could be as simple as syntactic sugar that converted to > double underscores behind the scenes. A couple of ideas that come to > my mind (though these have their problems too): > > def ~init(self): # shows it's special, but too like a C++ destructor > def +init(self): # a bit too additive :-) > defop add(self, other): # or this, equivalent to "def __add__" > def operator add(self, other): # new keyword, and a bit wordy None of these, IMO, meet the "needs to stand out" requirement met by double-underscore names. They also introduce special cases for the language parser (and thus for the reader to understand how the language will be parsed), whereas double-underscore names work without any special syntax handling. -- \ “Holy contributing to the delinquency of minors, Batman!” | `\ —Robin | _o__) | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list