Elementtree and CDATA handling
Terry Reedy
tjreedy at udel.edu
Wed Jun 1 12:52:10 EDT 2005
"Fredrik Lundh" <fredrik at pythonware.com> wrote in message
news:d7kdam$71c$1 at sea.gmane.org...
> you're confusing the external representation of something with the
> internal
> data model.
>
> consider this:
>
> >>> "hello"
> >>> 'hello'
> >>> "hell\x6f"
> >>> "hell\157"
> >>> "hell" + "o"
> >>> 'h' 'e' 'l' 'l' 'o'
>
> the above are six ways to write the same string literal in Python.
Minor nit: I believe 'hell' + 'o' is two string literals and a runtime
concatenation operation. Perhaps you meant 'hell' 'o', without the '+',
which I believe is joined to one literal at parsing or compilation time.
> all these result
> in a five-character string containing the letters "h", "e", "l", "l", and
> "o".
> if you type the above at a python prompt,
> you'll find that Python echoes the strings back as
> 'hello' in all six cases.
Nit aside, this is a valuable point that bears repeating. Another example
of one internal versus multiple external that confuses many is the
following:
1.1 == 1.1000000000000001 # True
The mapping of external to internal is many-to-one for both strings and
floats and therefore *cannot* be exactly inverted! (Or round-tripped.) So
Python has to somehow choose one of the possible external forms that would
generate the internal form.
Terry J. Reedy
More information about the Python-list
mailing list