<br><br><div><span class="gmail_quote">On 11/21/06, <b class="gmail_sendername">Walter Dörwald</b> &lt;<a href="mailto:walter@livinglogic.de">walter@livinglogic.de</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
tomer filiba wrote:<br>&gt; patch updated<br><br>You're fast! ;)<br><br>AFAICT now we have the following problem: If<br>Objects/typeobject.c::slot_nb_bool() falls back to using __len__(), the<br>return value of __len__() must be a bool.
</blockquote><div><br>Why can't the fallback usage just pass the return value from __len__ to bool() (forget the C function name) and return that result?&nbsp; It's just like doing::<br><br>&nbsp; def bool(obj):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return obj.__bool__()
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; except AttributeError:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return bool(len(obj))<br><br>-Brett<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Servus,<br>&nbsp;&nbsp; Walter<br><br>&gt; On 11/21/06, *Guido van Rossum* &lt;<a href="mailto:guido@python.org">guido@python.org</a><br>&gt; &lt;mailto:<a href="mailto:guido@python.org">guido@python.org</a>&gt;&gt; wrote:<br>&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; I think it would set a good example if __bool__ was *required* to<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; return exactly True or False and no other object, not even int<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; instances equal to 0 or 1. Surely that can't be much of a burden. Feel
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; free to upload an improved patch.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; On 11/21/06, Walter Dörwald &lt;<a href="mailto:walter@livinglogic.de">walter@livinglogic.de</a><br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mailto:<a href="mailto:walter@livinglogic.de">
walter@livinglogic.de</a>&gt;&gt; wrote:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Guido van Rossum wrote:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &gt; On 11/21/06, Ivan Krstić &lt; <a href="mailto:krstic@solarsail.hcs.harvard.edu">krstic@solarsail.hcs.harvard.edu</a><br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mailto:<a href="mailto:krstic@solarsail.hcs.harvard.edu">krstic@solarsail.hcs.harvard.edu</a>&gt;&gt; wrote:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &gt;&gt; Guido van Rossum wrote:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &gt;&gt;&gt; Can anyone help out evaluating this patch? If it has to wait
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; for me<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &gt;&gt;&gt; it's gonna be a looooooong wait...<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &gt;&gt; Looks fine to me functionally, although it seems to<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; gratuitously retab<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &gt;&gt; some code that used to be aligned with tabstop 8 to a tabstop of 4.
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &gt; Thanks! I hope you meant &quot;indentation level&quot; instead of &quot;tabstop&quot;.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &gt; Tomer, can you fix the indentation to be whatever's prevailing<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; in the
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; &gt; file you're editing?<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Another question is whether __bool__() should be allowed to return an<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; int (or any other object), or if it *must* be a bool. (The patch
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; currently allows ints). What if __bool__() returns subclasses of int,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; that overwrite __bool__() themself?<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt; Servus,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp;&nbsp;Walter<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; --<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; --Guido van Rossum (home page: <a href="http://www.python.org/~guido/">http://www.python.org/~guido/</a>)<br>&gt;<br>&gt;<br><br>_______________________________________________
<br>Python-3000 mailing list<br><a href="mailto:Python-3000@python.org">Python-3000@python.org</a><br><a href="http://mail.python.org/mailman/listinfo/python-3000">http://mail.python.org/mailman/listinfo/python-3000</a><br>
Unsubscribe: <a href="http://mail.python.org/mailman/options/python-3000/brett%40python.org">http://mail.python.org/mailman/options/python-3000/brett%40python.org</a><br></blockquote></div><br>