You can already do compact conditional returns with the current syntax:

def foo(a, b):
    return (a != b or None) and a * b

or even:

foo = (lambda a, b: (a != b or None) and a * b)

both return:

foo(2, 5) # 10
foo(1, 1) # None

... but clarity would be better.


On Fri, Jun 19, 2020 at 4:20 AM Serhiy Storchaka <> wrote:
18.06.20 15:30, Daniel. пише:
> I love the do_stuff if cond syntax in Ruby and in perl. It's very
> natural to real, much more to follow than if cond: do_stuff
> But still I don't think that it is enough to demand a language change.
> Something near this is to have a default of none for
> A if B else None
> So we can ommit the else None part, but this goes against the explicit
> is better than implicit

Only around 10% of "if" expressions have "else None" part. It is not
enough to justify a new syntax (even if ignore other objections).
Python-ideas mailing list --
To unsubscribe send an email to
Message archived at
Code of Conduct: