[Python-ideas] Operator for inserting an element into a list
Michael Selik
mike at selik.org
Fri Jun 15 13:39:32 EDT 2018
On Fri, Jun 15, 2018 at 10:25 AM Mikhail V <mikhailwas at gmail.com> wrote:
> very uncommon to see standalone statements like: x.method()
>
Python has many such mutation methods. It sounds like you're judging the
frequency of code patterns across all languages instead of just Python.
Even then, I don't think that's true. All OO languages that come to mind
have that pattern frequently.
As for x+=1 it is implementation detail - historical idea of such operators
> was
> mutating, so at least visually its not like a returning expression.
>
Incorrect. The += operator was meant as an alias for ``x = x + 1``. The
fact that it mutates a list is somewhat of a surprise. Some other languages
make no distinction between mutation and reassignment. Perhaps you're
thinking of one of those other languages.
> and I am not sure about x.method() form - was it meant to hint to the user
> about anything? It seemed to me so when I started to learn Python, but its
> not.
>
Yes, it returns None to emphasize that it's a mutation. This is different
from the so-called "fluent" design pattern where all mutation methods also
return the original object, causing confusion about whether the return
value is a copy or not.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180615/4c0eeafc/attachment-0001.html>
More information about the Python-ideas
mailing list