2.3 -> 2.4: long int too large to convert to int

Terry Reedy tjreedy at udel.edu
Fri Sep 16 15:52:26 EDT 2005


"Grant Edwards" <grante at visi.com> wrote in message 
news:11ilnab5b5vsue0 at corp.supernews.com...
> One of the nasty bits in a pure-python approach is that there's
> no way to write a literal with a fixed length.  For example,
> instead of writing 0xf7 to get an 8-bit value and 0x12345789 to
> get a 32-bit value, you have to instantiate a class like
> Word8(0xf7) and Word32(0x12345678).
>
> That starts to make things pretty hard to read.

This is no worse than having to write decimal(.53489384) or whatever to get 
a decimal float rather than a binary float, or indeed, than writing 
cname(init_data) to get an instance of all types/classes.  There are many 
more possible classes than sensible literal formats.  A few basic and 
general types have been blessed with literals that translate into inplicit 
type constructor calls.  Indeed, some literals seem necessary to start the 
object construction process.  However, most types and classes, including 
your particular special-use classes, do not have corresponding literals and 
never will in the general release.

If PyPy is successful in both being more flexible than CPython and at least 
about as fast, then you might be able to customize an interpreter with more 
builtin int classes and more careful parsing of int literals to initialize 
them.a

Terry J. Reedy






More information about the Python-list mailing list