[Python-3000] __nonzero__ vs. __bool__

Georg Brandl g.brandl at gmx.net
Tue Nov 21 20:08:11 CET 2006


I applied the new patch.
Aside from a syntax error on line 4241 in typeobject.c, it compiles.
However, test_decimal fails (before the make test run bails out at
test_hotshot, which is unrelated...)

Georg

tomer filiba schrieb:
> patch updated
> 
> 
> -tomer
> 
> On 11/21/06, *Guido van Rossum* <guido at python.org 
> <mailto:guido at python.org>> wrote:
> 
>     I think it would set a good example if __bool__ was *required* to
>     return exactly True or False and no other object, not even int
>     instances equal to 0 or 1. Surely that can't be much of a burden. Feel
>     free to upload an improved patch.
> 
>     On 11/21/06, Walter Dörwald <walter at livinglogic.de
>     <mailto:walter at livinglogic.de>> wrote:
>      > Guido van Rossum wrote:
>      > > On 11/21/06, Ivan Krstić < krstic at solarsail.hcs.harvard.edu
>     <mailto:krstic at solarsail.hcs.harvard.edu>> wrote:
>      > >> Guido van Rossum wrote:
>      > >>> Can anyone help out evaluating this patch? If it has to wait
>     for me
>      > >>> it's gonna be a looooooong wait...
>      > >> Looks fine to me functionally, although it seems to
>     gratuitously retab
>      > >> some code that used to be aligned with tabstop 8 to a tabstop
>     of 4.
>      > >
>      > > Thanks! I hope you meant "indentation level" instead of "tabstop".
>      > > Tomer, can you fix the indentation to be whatever's prevailing
>     in the
>      > > file you're editing?
>      >
>      > Another question is whether __bool__() should be allowed to return an
>      > int (or any other object), or if it *must* be a bool. (The patch
>      > currently allows ints). What if __bool__() returns subclasses of int,
>      > that overwrite __bool__() themself?
>      >
>      > Servus,
>      >    Walter
>      >
>      >
> 
> 
>     --
>     --Guido van Rossum (home page: http://www.python.org/~guido/)
> 
> 



More information about the Python-3000 mailing list