[Python-Dev] PEP 318 - generality of list; restrictions on
elements
Skip Montanaro
skip at pobox.com
Wed Mar 10 15:04:02 EST 2004
Phillip> The way I see it, left-to-right helps reading what's happening
Phillip> to the function. For example:
Phillip> def foo(cls,...) [contract(blah), classmethod]:
Phillip> ...
Phillip> clearly says that a contract wrapper is being applied to foo,
Phillip> and then it is being made a classmethod.
On the off-chance that a default arg initializer has side effects,
left-to-right also guarantees that the side effects take place before the
decorator expression is evaluated:
i = I(...)
def foo(a=i.func(...), b, c) [i.w1(...), w2]:
...
Evaluating i.func(...) might have some effect on the execution of i.w1(...).
I don't claim that's necessarily a good property to rely on, but if reading
order matches evaluation order it makes for fewer surprises.
Phillip> If the order were the other direction, it would force you to
Phillip> read right-to-left in order to know what's going to happen to
Phillip> the function.
Phillip> So, I vote for left-to-right on the grounds of "readability
Phillip> counts". :)
+1.
Skip
More information about the Python-Dev
mailing list