On Tue, 19 Feb 2008 21:50:33 -0800, Ivan Illarionov wrote: > I would like to see something like %init or &init to be converted to > __init__ behind the scenes.
Unfortunately -- or perhaps fortunately -- % clashes with the already established uses of % as the modulus operator for numbers and the interpolation operator for strings. >>> 5 % 3 2 >>> "hello %s" % "world" 'hello world' The last thing I want is to have to study code carefully to try to work out whether %name means __name__ or %name. Similarly for &, the bitwise and operator: >>> 9 & 12 8 > And $something to be converted to self.something. Well, at least $ is unused in Python at the moment. That's a point in the idea's favour. It's a tiny point, but a point. > But, unfortunately, most Python people would consider > this ugly Yes. > just because Perl uses too much syntactic sugar No. It's because Perl uses too much *line noise*, punctuation characters instead of syntax. > and anything > Perl-like is considered ugly in Python community. So, unless Perl die, I > believe that Python will remain sugar-free. Python has lots of syntactic sugar. Some examples: "class Foo" is syntactic sugar for a call to the new.classobj() function. Both "def foo():" and "lambda :" are syntactic sugar for a call to the new.function() function. Double-underscore method names are syntactic sugar. Decorators are syntactic sugar. Generator expressions and list comprehensions are syntactic sugar. Dict, tuple and list literals {a: b} (a, b) [a, b] are syntactic sugar. Method calls and method definitions are syntactic sugar. The trinary if operator "x if flag else y" is syntactic sugar. Most of these have been part of Python since the earliest days. Some of them, like method calls, are so established in Python and other languages that it's hard to remember that they could be done another way, without syntax support, but of course they could be: # instance.method(arg) getattr(instance, 'method')(arg) Python uses relatively little punctuation. That's one of the strengths of the language, and why its very unlikely that your suggestions will be implemented in Python. -- Steven -- http://mail.python.org/mailman/listinfo/python-list