Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么需要耗尽并丢弃迭代器?_Python_Iterator_Scandir - Fatal编程技术网

Python 为什么需要耗尽并丢弃迭代器?

Python 为什么需要耗尽并丢弃迭代器?,python,iterator,scandir,Python,Iterator,Scandir,关闭迭代器并释放获取的资源 当迭代器耗尽或垃圾收集时,或者在迭代过程中发生错误时,将自动调用该函数。但是,建议显式调用它或使用with语句 3.6版中的新版本 亲爱的,我偶然发现了这一段。它给我的印象是迭代器需要被耗尽和丢弃。为什么会这样?迭代器对象在工作过程中可以获取或创建某些资源。这是scandir情况下的文件系统句柄 因此,最好将其耗尽,因为在这种情况下,它将能够正确、及时地释放这些资源。但这是不必要的,有时需要中断迭代。在这种情况下,我们必须明确地告诉对象我们不再需要迭代它,它可以释放资

关闭迭代器并释放获取的资源

当迭代器耗尽或垃圾收集时,或者在迭代过程中发生错误时,将自动调用该函数。但是,建议显式调用它或使用with语句

3.6版中的新版本


亲爱的,我偶然发现了这一段。它给我的印象是迭代器需要被耗尽和丢弃。为什么会这样?

迭代器对象在工作过程中可以获取或创建某些资源。这是
scandir
情况下的文件系统句柄

因此,最好将其耗尽,因为在这种情况下,它将能够正确、及时地释放这些资源。但这是不必要的,有时需要中断迭代。在这种情况下,我们必须明确地告诉对象我们不再需要迭代它,它可以释放资源

显式地这样做比依赖垃圾收集器要好,这样可以更好地控制程序流,并可以防止出现意外错误

scandir.close()