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.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to