On Thu, Sep 07, 2017 at 04:36:40PM +0200, Jason H wrote: > I also often wonder why we are left doing an assignment and test. You have > two options: > 1. assign to a variable then test and use > 2. repeat the function call
Personally, I don't see what's wrong with the "assign then test" idiom. x = something() if x: do_stuff() > I would offer that 'with' [sh|c]ould be used: > with test() as x: > handle_truthy(x) > else: > handle_falsey() # do we provide x here too? Because None vs False? This would cause confusing errors and mysterious behaviour, depending on whether the test() object was a context manager or not. Which should take priority? If you see: with spam() as x: do_stuff is that a context manager with block (like "with open(...) as f") or your boolean if test in disguise? Having "with" sometimes be a disguised "if" and sometimes a regular "with" will make it really, really hard to reason about code. -- Steve _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/