[pypy-dev] __builtin__ module

Thomas Heller theller at python.net
Fri Jan 24 12:02:25 CET 2003


Armin Rigo <arigo at tunes.org> writes:

> About chr(i) vs. '%c'%i vs. '\x00\x01...\xFF'[i]: what I feel this
> shows is that one of these solutions must be thought as the
> primitive way to build a character, and the others should use it;
> and I definitely feel that chr() is the primitive way to build a
> character.  Contrary to what I said in a previous e-mail I don't
> think that chr() should be implemented with '%c'%i.  On the other
> hand, I guess that the strings' % operator could nicely be
> implemented in pure Python.  It would then have to use chr() to
> implement the %c format code.  It looks more reasonable than the
> other way around.

I don't want to beat this to death, but I've a different opinion.
There is no 'character' data type in Python, only a 'string', which
consists of 0 to n characters.

This is also reflected in Python/bltinmodule.c, where the code is:

	s[0] = (char)x;
	return PyString_FromStringAndSize(s, 1);

So even the C code creates a 'character array', and passes it to
PyString_FromStringAndSize, which I would call to canonical way to
build a string of whatever size. Of course there's a lot going
on what this function does behind the scenes...

Thomas



More information about the Pypy-dev mailing list