On 2013-08-14 18:14, Chris Angelico wrote: > On Wed, Aug 14, 2013 at 6:05 PM, <random...@fastmail.us> wrote: > > On Wed, Aug 14, 2013, at 10:32, wxjmfa...@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 -- http://mail.python.org/mailman/listinfo/python-list