python-list_iterator是否会垃圾收集其消耗的值?
发布时间:2020-05-24 22:39:50 所属栏目:Python 来源:互联网
导读:假设我有li = iter([1,2,3,4]).当我执行next(li)时,垃圾收集器会丢弃对不可访问元素的引用.而关于双端队列,那么di = iter(deque([1,2,3,4]))中的元素一旦消耗就可以被收集.如果不是,Python中的本机数据结构是否实现这种行为.最佳答案https://github.com/pytho
|
假设我有li = iter([1,2,3,4]). 当我执行next(li)时,垃圾收集器会丢弃对不可访问元素的引用. 而关于双端队列,那么di = iter(deque([1,4]))中的元素一旦消耗就可以被收集. 如果不是,Python中的本机数据结构是否实现这种行为. 最佳答案 https://github.com/python/cpython/blob/bb86bf4c4eaa30b1f5192dab9f389ce0bb61114d/Objects/iterobject.c 保留对列表的引用,直到您迭代序列的末尾为止.您可以在iternext函数中看到这一点. 双端队列在这里,没有特殊的迭代器. https://github.com/python/cpython/blob/master/Modules/_collectionsmodule.c 您可以创建自己的类,并定义__iter__和__next__以执行您想要的操作.像这样 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
