Carl Banks:
> I think booleans should be completely disjoint from all other types,
> as they are in Java. "and", "or", and "not" should accept only boolean
> operands and return only boolean results.
I'd like "or" and "and" (and "not") to return booleans only, to avoid
bugs and make their meaning more transparent, but I like the fact that
empty containers like "" [] (,) {} are seen as false:
x = []
if x:
...
else:
... // goes here
bool([]) ==> False
So I don't mind "and", "or" to take non-booleans too as input:
[] or "aa" ==> True
I think that's a good compromise between practicality, and avoiding
bugs.
"not" already works that way, it takes other objects too as input, but
its output is always a bool:
>>> not "aa"
False
>>> not ""
True
Bye,
bearophile
--
http://mail.python.org/mailman/listinfo/python-list