list.extend() should return self

Please, is there a reason why extend() method does not return self?
a = [1,2].extend((3,4)) a type(a) <class 'NoneType'> b = [1,2] b.extend((3,4)) b [1, 2, 3, 4]

On 3/3/21 3:23 PM, Hans Ginzel wrote:
Please, is there a reason why extend() method does not return self?
a = [1,2].extend((3,4)) a type(a) <class 'NoneType'> b = [1,2] b.extend((3,4)) b [1, 2, 3, 4]
I think it just the general principle that mutating methods return None, while methods that create a new object return that object. Thus you use the return type if you expect a new object, and getting None alerts you to the fact that it mutated the original instead of just makeing a new object for the answer. -- Richard Damon

Methods that mutate their argument typically return None, to avoid confusing them with methods that return copies; If you both mutate and return a copy it is easy to end up with shared objects in place you actually don't want them
even = [2,4,6] odd = [1,3,5] all = odd.extend(even)
... oops. -- M On Wed, 3 Mar 2021 at 12:43, Hans Ginzel <hans@matfyz.cz> wrote:
Please, is there a reason why extend() method does not return self?
a = [1,2].extend((3,4)) a type(a) <class 'NoneType'> b = [1,2] b.extend((3,4)) b [1, 2, 3, 4]
Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-leave@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/5BAHV7... Code of Conduct: http://python.org/psf/codeofconduct/
participants (3)
-
Hans Ginzel
-
Matthias Bussonnier
-
Richard Damon