为什么需要用尽并丢弃迭代器?
Why does an iterator need to be exhausted and discarded?
scandir.close()
关闭迭代器并释放获取的资源。
当迭代器耗尽或垃圾收集时,或者在迭代过程中发生错误时,会自动调用此方法。但是,建议显式调用它或使用 with 语句。
版本 3.6 中的新增内容。
亲爱的,我看到了这一段。它给我的印象是迭代器需要用尽并丢弃。为什么会这样?
Iterator
对象在其工作过程中可以获得或创建某些资源。这是 scandir
.
情况下的文件系统句柄
因此,希望将其耗尽,因为在这种情况下它能够正确及时地释放这些资源。但这没有必要,有时候会出现需要中断迭代的情况。在这种情况下,我们必须明确地告诉对象我们不想再迭代它并且它可以释放资源。
明确地执行此操作比依赖垃圾收集器更好,这样可以更好地控制程序流并防止出现意外错误。
scandir.close()
关闭迭代器并释放获取的资源。
当迭代器耗尽或垃圾收集时,或者在迭代过程中发生错误时,会自动调用此方法。但是,建议显式调用它或使用 with 语句。
版本 3.6 中的新增内容。
亲爱的,我看到了这一段。它给我的印象是迭代器需要用尽并丢弃。为什么会这样?
Iterator
对象在其工作过程中可以获得或创建某些资源。这是 scandir
.
因此,希望将其耗尽,因为在这种情况下它能够正确及时地释放这些资源。但这没有必要,有时候会出现需要中断迭代的情况。在这种情况下,我们必须明确地告诉对象我们不想再迭代它并且它可以释放资源。
明确地执行此操作比依赖垃圾收集器更好,这样可以更好地控制程序流并防止出现意外错误。