.split() Qeustion

Tim Chase python.list at tim.thechases.com
Wed Aug 14 13:29:56 EDT 2013


On 2013-08-14 18:14, Chris Angelico wrote:
> On Wed, Aug 14, 2013 at 6:05 PM,  <random832 at fastmail.us> wrote:
> > On Wed, Aug 14, 2013, at 10:32, wxjmfauth at gmail.com wrote:
> >> I'm always and still be suprised by the number of hard coded
> >> '\n' one can find in Python code when the portable (here
> >> win)
> >>
> >> >>> os.linesep
> >> '\r\n'
> >>
> >> exists.
> >
> > Because high-level code isn't supposed to use the os module
> > directly. Text-mode streams automatically convert newlines you
> > write to them.
> 
> I'm always, and will still be, surprised by the number of hard coded
> decimal integers one can find in Python code, when the portable way
> to do it is to use ctypes and figure out whether your literals
> should be big-endian or little-endian, 32-bit or 64-bit, etc. Yet
> people continue to just put decimal literals in their code! It
> can't be portable.

No, no, no...you want

  from sys.platform.integers import 0, 1, 2, 3, 14, 42

to be portable against endian'ness and bit-width.  Granted, one might
confuse them with regular numeric literals, so it would be best to
clarify them by namespace:

  import sys
  answer_to_life = sys.platform.integers.42
  print(sum(range(sys.platform.integers.0, sys.platform.integers.14)))

That way you ensure platform independence, and *much* clearer! ;-)

-tkc






More information about the Python-list mailing list