Steven D'Aprano writes:
[- -]
> What is this truthiness abstraction? It is the difference between
> "something" and "nothing".
>
> Values which represent nothing, e.g.:
>
> - None
> - numeric zero: 0, 0.0, 0j, Decimal(0) etc
> - empty strings u'', ''
> - empty containers [], (), {} etc.
>
> are treated as falsey. And values that represent something, e.g.:
[- -]
What do you say about things like iterators and generators? I'd say they
are containers, but they count as true even when they are empty.
bool(x for x in [3,1] if x in [2,7]) # True
list(x for x in [3,1] if x in [2,7]) # []
I think the abstraction really leaks on these things.
--
https://mail.python.org/mailman/listinfo/python-list