[Python-3000] Wither PEP 335 (Overloadable Boolean Operators)?
Neal Norwitz
nnorwitz at gmail.com
Sat May 26 04:29:19 CEST 2007
On 5/25/07, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
>
> > Is that OK, because "not not X" should now be spelled "bool(x)", and
> > you haven't allowed the overriding of __bool__?
>
> Yes, I would say that 'not not x' should indeed be spelled
> bool(x), if that's what you intend it to mean.
>
> Whether __bool__ should be overloadable is outside the scope
> of this PEP. But if it is overloadable, I would recommend
> that it not be allowed to return anything other than a boolean.
There is already a __bool__ method in 3k. It's the old __nonzero__ method.
>>> 5 .__bool__()
True
>>> 0 .__bool__()
False
>>> class F:
... def __bool__(self): return 5
>>> if F(): print('is')
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __bool__ should return bool, returned int
n
More information about the Python-3000
mailing list