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.
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.