Message127284
I'm using a 64 bit system, but the issue is as well repeatable on 32 bit systems:
kostja@shmita:~$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 0xffffffffffffffff
18446744073709551615L
>>> [0xffffffffffffffff]
[18446744073709551615L]
>>> str(0xffffffffffffffff)
'18446744073709551615'
>>> str([0xffffffffffffffff])
'[18446744073709551615L]'
Notice the 'L' specifier disappears when creating a string from an integer. I.e. depending on conversion order, 'L' specifier is present or absent in the resulting string representation.
I don't know the reason why 'L' specifier is necessary at all when printing integers, rather, I'd say it's very harmful, because makes Python program platform-dependent (since int is mapped to C long, 32-bit systems print 'L' where 64-bit systems don't), but please at least make the output consistent!
Thanks,
--
kostja |
|
Date |
User |
Action |
Args |
2011-01-28 11:23:25 | kostja | set | recipients:
+ kostja |
2011-01-28 11:23:25 | kostja | set | messageid: <1296213805.8.0.5306438252.issue11039@psf.upfronthosting.co.za> |
2011-01-28 11:23:24 | kostja | link | issue11039 messages |
2011-01-28 11:23:24 | kostja | create | |
|