On Sat, May 17, 2014 at 6:14 AM, Nick Coghlan <ncogh...@gmail.com> wrote:
> During a conversation today, I realised that the convention of
> returning None from methods that change an object's state isn't
> captured the Programming Recommendations section of PEP 8.
> Specifically, I'm referring to this behaviour:
>
>>>> [].sort() is None
> True
>>>> "ABC".lower() is None
> False
>
> That's a deliberate design choice, and one that has been explained a
> few times on the list when folks ask why "[].sort().reverse()" doesn't
> work when "'ABC'.lower().replace('-', '_')" does.
>
> Would it be worth adding such a note? Or is it out of scope?

Numpy also has a menagerie of in-place and out-of-place methods that
follow this convention, and we also have to go round on the mailing
list from time to time explaining to well-meaning beginners why for
the in-place methods returning None is the right ("Pythonic") design.
Having a canonical explanation of this to link to would be useful.

-n

-- 
Nathaniel J. Smith
Postdoctoral researcher - Informatics - University of Edinburgh
http://vorpus.org
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to