On Wed, Nov 29, 2017 at 06:49:14AM -0800, David Mertz wrote:
I didn't say no use case exists, but rather "too special case." And/or shortcutting is great, but truthiness feels much more general than noneness to me.
Of course truthiness is much more general than Noneness -- and that's precisely the problem with using `or`. It's too general.
If you haven't read the PEP, you should, because this is extensively discussed there. One of the problems the author discusses is that `or` is recommended on Stackoverflow as the best way to perform short-cutting None tests, often with no caveats given.
We've been here before. Python old-timers may remember the former idiomatic way to get a ternary if expression:
condition and first or second
which was also buggy (if first happens to be falsey, second is returned even when condition is true).