> On 26 Jun 2019, at 16:46, Chris Angelico <ros...@gmail.com> wrote:
> 
>> On Thu, Jun 27, 2019 at 12:37 AM Anders Hovmöller <bo...@killingar.net> 
>> wrote:
>> 
>>>> On 26 Jun 2019, at 14:28, Rhodri James <rho...@kynesim.co.uk> wrote:
>>>> 
>>>> On 26/06/2019 08:34, Yanghao Hua wrote:
>>>> I find the objection reasoning very strange as none of the default
>>>> behavior changed, and yet if you use this feature you do need to worry
>>>> about the object behavior regarding assignment, this is true for
>>>> descriptors and all other magics.
>>> 
>>> The problem is not the default behaviour.  The problem is that the average 
>>> reader of your code cannot know that something that appears to be an 
>>> ordinary assignment has been redefined elsewhere to be something entirely 
>>> herring.  Your code stops being understandable to other people.
>> 
>> 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. + 
>> doesn't mean add, it means calling a dunder function that can do anything. 
>> Foo.bar = 1 doesn't mean set bar to 1 but calling a dunder method. In python 
>> code basically can't be understood at face value.
>> 
> 
> There are many things that can be implemented with dunders, yes, but
> in Python, I would expect these two functions to behave identically:
> 
> def f1(x):
>    return frob(x).spam
> 
> def f2(x):
>    f = frob(x)
>    s = f.spam
>    return s
> 
> This correlation is critical to sane refactoring. You should be able
> to transform f1 into f2, and then insert print calls to see what 'f'
> and 's' are, without affecting the behaviour of the function. The
> proposed magic would change and completely break this; and as such, it
> violates programmer expectations *across many languages* regarding
> refactoring.

I'm out of the game for many years but isn't that potentially extremely 
different in C++ for example?

/ Anders 
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/YMHEUHBCRNN6PEAPOTA6NWBKB5GCPKJS/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to