(original) (raw)

Talk about hijacking an unrelated thread... :-(

Though there's maybe a style rule for the ternary operator to be devised here? :-)

On Apr 7, 2015 11:36 AM, "Stefan Behnel" <stefan\_ml@behnel.de> wrote:
Antoine Pitrou schrieb am 07.04.2015 um 14:26:
\> On Tue, 07 Apr 2015 03:11:30 +0100
\> Rob Cliffe <rob.cliffe@btinternet.com> wrote:
\>>
\>> On 07/04/2015 02:08, Guido van Rossum wrote:
\>>> I've taken the liberty of adding the following old but good rule to
\>>> PEP 8 (I was surprised to find it wasn't already there since I've
\>>> lived by this for ages):
\>>>
\>>> \*
\>>>
\>>> Be consistent in return statements. Either all return statements
\>>> in a function should return an expression, or none of them should.
\>>> If any return statement returns an expression, any return
\>>> statements where no value is returned should explicitly state this
\>>> asreturn None, and an explicit return statement should be present
\>>> at the end of the function (if reachable).
\>>>
\>>> Yes:
\>>>
\>>> def foo(x):
\>>> if x >= 0:
\>>> return math.sqrt(x)
\>>> else:
\>>> return None
\>>>
\>> That would seem to be good style and common sense.
\>>
\>> As a matter of interest, how far away from mainstream am I in
\>> preferring, \*in this particular example\* (obviously it might be
\>> different for more complicated computation),
\>>
\>> def foo(x):
\>> return math.sqrt(x) if x >= 0 else None
\>
\> I agree with you on this.

+1, the ternary operator reads best when there is a "normal" case that can
go first and a "special" or "unusual" case that can go last and does not
apply under the (given) normal conditions.

Stefan


\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido%40python.org