Overloadable Assignment PEP
Drew Moore
drew at astro.pas.rochester.edu
Thu Apr 3 22:39:14 EST 2003
Lulu of the Lotus-Eaters <mertz at gnosis.cx> wrote in message news:<mailman.1049398267.20730.python-list at python.org>...
> drew at astro.pas.rochester.edu (Drew Moore) wrote previously:
> |voltage += 5 # (raise the voltage by 5 volts)
> |voltage *= 2 # (double the current voltage)
> |voltage = 3 # (set the voltage to 3 volts)
> |my voltage object is clobbered with an integer object.
>
> The case makes sense... but IMO, not nearly enough to change the
> behavior of assignment.
>
> For this particular case, you could simply coopt the meaning of some
> other augmented operator to set voltage. For example:
>
> voltage |= 3
>
> The need to bitwise-and on voltage seems unlikely, so you should not
> step on anything important. Of course, experienced Python programmers
> might do a little double take on the meaning, but documentation can
> explain it.
>
> Then again, I wouldn't mind adding the new operator ":=" which was
> "generic augmentation"... the operator could do -absolutely nothing- for
> standard types, but could be available for custom meaning in custom
> types.
>
> Yours, Lulu...
Use a different operator? not a bad idea..
I been there.. kinda. I used
voltage << 3
which was a little more intuitive to me syntactically..
However I still found myself accidentally typing
voltage = 3 every once in a while, as that makes the most "sense."
Drew
More information about the Python-list
mailing list