[David Mertz <[email protected]>]
> ...
> What we get instead is a clear divide between mutating methods
> on collections that (almost) always return None, and functions
> like sorted() and reversed() that return copies of the underlying
> collection/iterable. Of course, there are many methods that don't
> have functions matching them. Python could have been designed
> differently, but using the consistency it follows is best.
For a bit of history that I may have made up (heh - memory fades over
time!), as I recall, the very first Python pre-releases echoed to
stdout every non-None statement result. So, e.g.,
for i in range(5):
i
displayed the same as the current
for i in range(5):
print(i)
But one prolific early user loved chaining mutating method calls, each
returning `self`, and so their output was littered with crap they
didn't want to see. They didn't want to prefix every computational
statement with, e.g., "ignore = ", so Guido stopped the magical
output.
Perhaps surprisingly, few people noticed the difference. But that may
in large part be due to that there were few people, period.
Or I'm just hallucinating again :-)
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/WOKUBTEZEXCX5HE4TKJ5GG73ILVO6LMK/
Code of Conduct: http://python.org/psf/codeofconduct/