4.16 迭代器代替while无限循环

    一个常见的IO操作程序可能会想下面这样:

    如果你怀疑它到底能不能正常工作,可以试验下一个简单的例子。比如:

    这种特殊的方法对于一些特定的会被重复调用的函数很有效果,比如涉及到I/O调用的函数。举例来讲,如果你想从套接字或文件中以数据块的方式读取数据,通常你得要不断重复的执行 read()recv() ,并在后面紧跟一个文件结尾测试来决定是否终止。这节中的方案使用一个简单的 iter() 调用就可以将两者结合起来了。其中 函数参数是为了创建一个无参的 callable 对象,并为 recvread() 方法提供了 参数。