【问题标题】:Why does an iterator need to be exhausted and discarded?为什么迭代器需要被耗尽和丢弃?
【发布时间】:2020-07-08 18:22:37
【问题描述】:
scandir.close()

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

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

3.6 版中的新功能。

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

【问题讨论】:

    标签: python iterator scandir


    【解决方案1】:

    Iterator 对象在其工作过程中可以获取或创建某些资源。这是scandir 的文件系统句柄。

    因此,希望将其耗尽,因为在这种情况下,它将能够正确及时地释放这些资源。但这没有必要,有时会出现需要中断迭代的情况。在这种情况下,我们必须明确告诉对象我们不再想要迭代它并且它可以释放资源。

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

    【讨论】:

      猜你喜欢
      • 2016-08-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 2017-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多