On Jan 18, 9:01 am, Chris Rebert <c...@rebertia.com> wrote: > Indeed. Python happens to in this case draw the line at using the > augmented assignment operators for non-assignment. I personally see > this as reasonable because the = symbol has a consistent meaning in > Python (assignment) whereas the other plain operators, as you bring > up, consistently have no predetermined meaning;
my argument was that *= is not treated as = and *, but as a completely new operator (the docs even say that the implementation need not return self which suggests some pretty extreme semantics were envisaged). however, as i've just commented elsewhere, this commitment to operators was only half-baked because they are parsed as assignments. anyway, to reply to your comment - *= is not predetermined. it is determined by __imul__ which is user-definable. > but I do agree that it > is in a sense an arbitrary restriction, like many programming language > design choices. However, Python was not explicitly designed for > creating DSLs, python is a general programming language. as far as i can make any sense at all of your argument it seems to be "you are asking for change, but this is not how the current system works". to which the obvious answer is: if it did work that way i wouldn't be asking for change. andrew -- http://mail.python.org/mailman/listinfo/python-list