gpt4 book ai didi

python - 避免内存泄漏

转载 作者:太空宇宙 更新时间:2023-11-03 18:34:34 26 4
gpt4 key购买 nike

下面我创建了一个 Any 实例列表,然后修改此列表,最后随机选择此列表中的一些元素以创建一个新列表。

from random import choice
import copy

class Any():
def __init__(self,x):
self.x=x

def modify (self):
self.x += choice([0,1])
return self

def create_new_list (old_list):
new_list = [copy.deepcopy(old_list[choice(range(len(old_list)))]) for i in range(len(old_list))]
return new_list


a = [Any(0),Any(19),Any(3),Any(10)] # Create the original list
for iteration in xrange(20):
[i.modify() for i in a]
a = create_new_list(a)
  1. 我必须复制旧列表的元素,因为然后我想独立修改它们。正确吗?

  2. 由于这个系统,我在每个循环中创建 Any 的新实例,这些实例将保留在内存中,从而导致内存泄漏问题。正确吗?

  3. 如何避免这种情况?

    3a) 如果我添加会怎样

    del old_list

    在函数的末尾create_new_list

    3b)或者我应该添加

    [del(i) for i in old_list]

    del old_list

    create_new_list的末尾?

    3c) 还有其他更有效的解决方案吗?

最佳答案

就您而言,不,您不需要复制任何内容。

此外,您不需要显式释放任何内容。当不再引用事物时,它们将被垃圾收集。

关于python - 避免内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21835216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com