Python 删除作为参数接收的对象
Python delete object received as parameter
我调用一个函数,给它一些非常大的对象。需要一些特定的东西,然后想从内存中删除它。这可以使用以下代码进行演示:
def main():
obj = get_very_large_obj()
func(obj)
# obj i not longer used!
def func(obj):
specific_value = obj.get_some_needed_value()
del obj
# Do some very long work
return
函数 func
需要 obj
中的某些特定内容,并且一旦检索到它,我就不再驻留在内存中。我想做我的“长期工作”而不浪费它。
这能实现吗?
将大对象包装在列表中。然后你可以删除列表元素,对象将成为垃圾收集器。
def main():
objlist = [get_very_large_obj()]
func(objlist)
def func(objlist):
specific_value = obj[0].get_some_needed_value()
del obj[0]
# Do some very long work
return
我调用一个函数,给它一些非常大的对象。需要一些特定的东西,然后想从内存中删除它。这可以使用以下代码进行演示:
def main():
obj = get_very_large_obj()
func(obj)
# obj i not longer used!
def func(obj):
specific_value = obj.get_some_needed_value()
del obj
# Do some very long work
return
函数 func
需要 obj
中的某些特定内容,并且一旦检索到它,我就不再驻留在内存中。我想做我的“长期工作”而不浪费它。
这能实现吗?
将大对象包装在列表中。然后你可以删除列表元素,对象将成为垃圾收集器。
def main():
objlist = [get_very_large_obj()]
func(objlist)
def func(objlist):
specific_value = obj[0].get_some_needed_value()
del obj[0]
# Do some very long work
return