Inconsistent reaction to extend

Fredrik Lundh fredrik at pythonware.com
Fri Sep 9 12:06:20 CEST 2005


Jerzy Karczmarczuk wrote:

> Gurus, before I am tempted to signal this as a bug, perhaps
> you might convince me that it should be so.

it's not a bug, and nobody should have to convince you about any-
thing; despite what you may think from reading certain slicing threads,
this mailing list is not an argument clinic.

> If I type
>
> l=range(4)
> l.extend([1,2])
>
> l  gives [0,1,2,3,1,2], what else...
>
> On the other hand, try
>
> p=range(4).extend([1,2])
>
> Then, p HAS NO VALUE (NoneType).

(footnote: None is a value in Python.  it can be used to represent "no value",
but it can also be used for other things)

> With append the behaviour is similar. I didn't try other methods, but
> I suspect that it won't improve.
>
> WHY?

because you're saving the return value of "extend", not "range", and "extend"
returns None.

if you split it up like this

    l = range(4)
    p = l.extend([1, 2])

it should be obvious that "l" and "p" doesn't necessarily contain the same thing.

</F> 






More information about the Python-list mailing list