one to many (passing variables)

Peter Otten __peter__ at
Wed Jul 30 13:37:25 CEST 2014

Antoon Pardon wrote:

> Taking this in consideration I think the got it
> backwards.
> The documentation says the following:
> | If 0 bytes are returned, and size was not 0, this indicates end of file.
> | If the object is in non-blocking mode and no bytes are available, None
> | is returned.
> But typically if you are reading in non-blocking mode, no bytes availabe
> can be treated as if you receive an empty (byte)string. While reaching the
> end of the stream is different. So it would have been more consistent if
> an empty (byte)string was return in case of no bytes availabe and None or
> io.EOF or something like that in case of end of file.
> Now I have to write things as follows:
> for block in iter(partial(, 1024), ''):
>     if block is not None:
>         for b in block
>             process(b)


for block in ...:
    for b in block or ():

> Otherwise I could write it more as follows:
> for block in iter(partial(, 1024), io.EOF):
>     for b in block
>         process(b)

More information about the Python-list mailing list