[Python-Dev] Changing string constants to byte arrays in Py3k

"Martin v. Löwis" martin at v.loewis.de
Sat May 5 23:20:15 CEST 2007


>> In general, I don't think it's a good idea to have literals
>> turn into mutable objects, since literals are normally perceived
>> as being constant.
> 
> Does that mean you want list literals to be immutable too?
> 
>     lst = ['a', 'b', 'c']
>     lst.append('d') # raises an error?

That's not a literal, it's a display. The difference is that
a literal denotes the same object every time it is executed.
A display creates a new object every time it is executed.
(another difference is that a display is a constructed thing
 which may contain runtime-computed components, unlike a
 literal).

So if bytes are mutable and also have source-level
representation, they should be displays, not literals.

Regards,
Martin


More information about the Python-Dev mailing list