[Python-Dev] bytearray methods returning self...

Guido van Rossum guido at python.org
Tue Nov 18 22:14:13 CET 2008


Good catch, this is a bug IMO and we should fix it in 2.6.1 and 3.0rc3.

Mind filing a bug so we can keep track of it?

--Guido

On Tue, Nov 18, 2008 at 1:01 PM, Dino Viehland <dinov at microsoft.com> wrote:
> I've been implementing bytearray for IronPython and I noticed a couple of spots where the non-mutating methods of bytearray return self.
>
> In 2.6 but not in 3.0 RC2:
>
> x = bytearray(b'abc')
> y = x.replace(b'abc', b'bar', 0)
> id(x) == id(y)
>
> In 2.6 and in 3.0 RC2:
>
> t = bytearray()
> for i in range(256): t.append(i)
>
> x = bytearray(b'')
> y = x.translate(t)
> id(x) == id(y)
>
> Given that bytearray always returns a new instance on all of the other methods shouldn't it return a new instance here as well?  I'm just thinking someone could be planning on mutating the result here and not expecting their original bytearray to be mutated.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list