[Python-Dev] builtin_id() returns negative numbers
James Y Knight
foom at fuhm.net
Mon Feb 14 17:33:13 CET 2005
On Feb 14, 2005, at 10:41 AM, Tim Peters wrote:
>> Wouldn't it be more elegant to make builtin_id() return an unsigned
>> long integer?
>
> I think so. This is the function ZODB 3.3 uses, BTW:
>
> def positive_id(obj):
> """Return id(obj) as a non-negative integer."""
> [...]
I think it'd be nice to change it, too. Twisted also uses a similar
function.
However, last time this topic came up, this Tim Peters guy argued
against it. ;)
Quoting
http://mail.python.org/pipermail/python-dev/2004-November/050049.html:
> Python doesn't promise to return a postive integer for id(), although
> it may have been nicer if it did. It's dangerous to change that now,
> because some code does depend on the "32 bit-ness as a signed integer"
> accident of CPython's id() implementation on 32-bit machines. For
> example, code using struct.pack(), or code using one of ZODB's
> specialized int-key BTree types with id's as keys.
James
More information about the Python-Dev
mailing list