On 06/26/2019 07:34 AM, Anders Hovmöller wrote:
I 100% agree that this proposal is a bad idea. But I do have to play Devils advocate here.
The the-code-is-understandable-at-face-value ship has already sailed.
True, it can do anything -- but if the thing it does is not related to combining two things together and returning the result, people will be surprised and consider it a bad function. (Or they should. ;-)
Foo.bar = 1 doesn't mean set bar to 1 but calling a dunder method.
Foo. tells us Magic May Be Happening, and we still expect
something reasonable to occur -- perhaps a boundary check, maybe a cache lookup, perhaps a
type change to an equal-but-different representation (1.0 instead of 1, for example), or
even setting other dependent variables.