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 <storchaka@gmail.com> 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 -- python-ideas@python.org
To unsubscribe send an email to python-ideas-leave@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/5E6JG6T7FLUIQFUQFRGUPGFQ3PLTXNHB/
Code of Conduct: http://python.org/psf/codeofconduct/