1. 在大型文本读取的过程中,最长涉及到的就是yield语句,当所定义的函数中出现yield语句时,该函数就会转变为一个生成器,此时该函数必须通过next语句去调用,直接使用该函数则不会生效,此外每次遇到yield语句代码就会停下来并且返回一个值,直到再次的next调用才会继续执行后面的语句;
2. 需要注意的是send函数也可以实现next函数的功能,可以将数据传递给yiled语句并且是next语句为特殊的send函数,等价于send(none),对于常见的for循环,其内部自动隐藏调用next函数,所以常常见到在yield语句中使用for循环;
3. 上述代码首先观察到函数为生成器函数,设定了固定的512字符作为标准进行读取,当函数执行到yiled content语句时,停止,在主函数中有for函数遍历read_中的元素,并且隐藏的next函数会自动返回出这512个字符,使得函数继续运行下去;
4. 合理的使用yiled语句可以节省空间,尤其是需要使用大量的内存资源时很明显,并且可以提高代码的运行效率。