[Python-ideas] Null coalescing operators
Sven R. Kunze
srkunze at mail.de
Tue Sep 22 20:22:42 CEST 2015
On 22.09.2015 05:15, Steven D'Aprano wrote:
> On Mon, Sep 21, 2015 at 05:23:42PM -0400, Terry Reedy wrote:
>> I agree with Paul Moore that propagating None is generally a bad idea.
> As I understand it, you and Paul are describing a basic, simple idiom
> which is ubiquitous across Python code: using None to stand in for "no
> such value"
There is not a single "no such value". As I mentioned before, when
discussing NULL values on the RDF mailing list, we discovered 6 or 7
> when the data type normally used doesn't otherwise have
> something suitable. Consequently I really don't understand what you and
> Paul have against it.
I can tell from what I've seen that people use None for: all kinds of
various interesting semantics depending on the variable, on the supposed
type and on the function such as:
- +infinity for datetimes but only if it signifies the end of a timespan
- current datetime
- mixing both
- default item in a list like [1, 2, None, 4, 9] (putting in 5 would
have done the trick)
Just imagine a world where Python and other systems would have never
invented None, NULLs or anything like that.
> I think you meant to say it merely *postpones* the inevitable
> exception. But that's wrong, there's nothing inevitable about an
> exception here. It's not *hard* to deal with "value-or-None". It's
> just tedious, which is why a bit of syntactic sugar may appeal.
It's a sign of bad design. So, syntactic sugar does not help when doing
toilet paper programming (hope that translation works for English).
More information about the Python-ideas