On 2018-10-15 12:06:06 +0100, Rhodri James wrote: > On 14/10/18 09:06, Peter J. Holzer wrote: > > If everybody used tabs, why would anyone care about your tab width? > > Unless they look over your shoulder while you are typing, they won't > > even know how wide your tabs are. > > If you used two-space tab stops and I used (the normal :-) eight, > comfortable indentations for you would rapidly become uncomfortably large > indentations for me. I'd care about that.
Buy a bigger monitor :-). On a more serious note, I think the number of indentation levels should be fairly low regardless of their width. If someone uses 2-space indentation so they can fit 20 nested ifs, the other programmers should complain during code review: Not because the lines are too long but because the nesting is too deep. > I'd also care if you used spaces to make sub-tab stop adjustments to > line up appropriate text (inside brackets, for example). I'm not sure what a "sub-tab stop adjustment" is. I think that for the "1 tab per indentation level" style, tabs would be used only for indentation, nothing else, and preferably only for block-level indentation. So a python function might look like this with 8 spaces per tab: def·foo(a_parameter,·another_parameter, ········an_optional_parameter=DEFAULT_VALUE, ········another_optional_parameter=None ····): →x·=·a_parameter →a·=·[ →····{·'x':·1,···'y':·2,····'z':·3·}, →····{·'x':·0.4,·'y':·3.14,·'z':·1.618·}, →] →if·another_optional_parameter: → →r·=·( → →····(another_optional_parameter·*·a[0]['x']·+·another_parameter·*·b[0]['y']) → →····/ → →····(a[1]['x']·+·a[1]['y']·+·a[1]['z']) → →) →else: → →r·=·another_parameter·*·0 →return·r (I'using → to represent a tab here and · to represent a space.) And like this with 2 spaces per tab: def·foo(a_parameter,·another_parameter, ········an_optional_parameter=DEFAULT_VALUE, ········another_optional_parameter=None ····): →x·=·a_parameter →a·=·[ →····{·'x':·1,···'y':·2,····'z':·3·}, →····{·'x':·0.4,·'y':·3.14,·'z':·1.618·}, →] →if·another_optional_parameter: → →r·=·( → →····(another_optional_parameter·*·a[0]['x']·+·another_parameter·*·b[0]['y']) → →····/ → →····(a[1]['x']·+·a[1]['y']·+·a[1]['z']) → →) →else: → →r·=·another_parameter·*·0 →return·r Note that everything still lines up nicely. hp (a four spaces per indentation level guy) -- _ | Peter J. Holzer | we build much bigger, better disasters now |_|_) | | because we have much more sophisticated | | | h...@hjp.at | management tools. __/ | http://www.hjp.at/ | -- Ross Anderson <https://www.edge.org/>
signature.asc
Description: PGP signature
-- https://mail.python.org/mailman/listinfo/python-list