
On Fri, Jul 20, 2018 at 5:10 PM, Grégory Lielens <gregory.lielens@gmail.com> wrote:
On 2018-07-19 02:11, Chris Angelico wrote:
-snip- As far as I can see, these null-coalescing operators would break that model. The PEP doesn't seem to provide for a "real" magic method allowing users to override the actual behavior of the method. (You can only override __has_value__ to hook into it, but not define by fiat what A ?? B does, as you can with other operators.) And I think the reason for this is that the operator itself is too specific, much more specific in semantics than other operators. (I had similar doubts about adding the matrix-multiplication operator @.)
People keep saying that this null-coalescing behavior is so common and useful, etc., but that hasn't been my experience at all. In my experience, the desire to shortcut this kind of logic is more often a sign of corner-cutting and insufficiently specified data formats, and is likely to cause bugs later on. Eventually it has to actually matter whether something is None or not, and these operators just kick that can down the road. In terms of their abstract meaning, they are not remotely close to as common or useful as operators like & and |.
Fully agree with you on this
Excuse me, that wasn't my words you quoted. Watch your citations please :) ChrisA