
On Fri, Oct 14, 2011 at 1:07 PM, Carl M. Johnson <cmjohnson.mailinglist@gmail.com> wrote:
To me the limitations of 403 are its strength. I don't want to see people doing crazy inside-out code.
This has long been my fear with PEP 3150, but I'm beginning to wonder if that fear is overblown.
Let's say we had a keyword OoO for "out of order":
OoO result = flange(thingie): OoO thing = doohickie(majiger): part_a = source / 2 part_b = source ** 2 majiger = blender(part_a, part_b)
But now consider this: part_a = source / 2 part_b = source ** 2 majiger = blender(part_a, part_b) thingie = doohickie(majiger) result = flange(thingie) And now with a couple of operations factored out into functions: def make_majiger(source): part_a = source / 2 part_b = source ** 2 return blender(part_a, part_b) def make_thingie(source): return doohickie(make_majigger(source)) result = flange(make_thingie(source)) All PEP 3150 is allowing you to do is indent stuff that could potentially be factored out into a function at some point, without forcing you to factor it out *right now*: result = flange(thingie) given: thingie = doohickie(majiger) given: part_a = source / 2 part_b = source ** 2 majiger = blender(part_a, part_b) So is the "inline vs given statement" question really any more scary than the "should I factor this out into a function" question? I expect the style guidelines will boil down to: - if you're writing a sequential process "first we do A, then we do B, then we do C, etc", use normal inline code - if you're factoring out subexpressions from a single step in an algorithm, use a given statement - as a general rule, given statements should be used for code that could reasonably be factored out into its own function Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia