<div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><span style="border-collapse:separate;font-family:arial;font-size:small">Guido van Rossum <span dir="ltr"><<a href="mailto:guido@python.org" target="_blank">guido@python.org</a>></span> wrote:</span></span></div>



<div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204, 204, 204);border-left-style:solid;padding-left:1ex">
Because for built-in iterator types the next() method is implemented in C and we didn't want to invalidate existing C code by giving it an optional argument.</blockquote><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><div>



<span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse"><br></span></div><div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse">Ah, makes sense.</span></div>
<br><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204, 204, 204);border-left-style:solid;padding-left:1ex">
But why do you care?</blockquote></span></div><div><br></div><div>Curiosity more than anything.</div><div><br></div><div>It would be elegant if .send() had identical behavior to .next() without an argument, instead of throwing an exception, but it's no biggie.</div>

<div><br></div><div>Cheers,</div><div>Andrey</div><div><br></div>Masklinn <<a href="mailto:masklinn@masklinn.net" target="_blank">masklinn@masklinn.net</a>> wrote:<div>

<blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204, 204, 204);border-left-style:solid;padding-left:1ex">
You'd have to check the ML discussions on PEP 342 (Coroutines via Enhanced Generators).</blockquote><div><br></div><div>Sweet, thanks for the pointer. Sorry for not searching harder. </div><br><div class="gmail_quote">



On Fri, Feb 19, 2010 at 11:32 AM, Masklinn <span dir="ltr"><<a href="mailto:masklinn@masklinn.net" target="_blank">masklinn@masklinn.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div>On 19 Feb 2010, at 17:12 , Andrey Fedorov wrote:<br>
><br>
> Since .next() seems to be equivalent to .send(None), why wasn't .next() just<br>
> given an optional parameter which defaults to None?<br>
><br>
> - Andrey<br>
</div>You'd have to check the ML discussions on PEP 342 (Coroutines via Enhanced Generators). The PEP explicitly states that send(None) is equivalent to next()<br>
<br>
>   A new method for generator-iterators is proposed, called send().  It<br>
    takes exactly one argument, which is the value that should be "sent<br>
    in" to the generator.  Calling send(None) is exactly equivalent to<br>
    calling a generator's next() method.  Calling send() with any other<br>
    value is the same, except that the value produced by the generator's<br>
    current yield expression will be different.<br>
<br>
A new method was probably created because it would be quite unclear that `next(value)` sends that value into the generator for consumption by a yield expression. Whereas the purpose of `send(value)` looks pretty obvious.</blockquote>



</div><br></div>