Python删除对象作为参数接收
我调用一个函数,给它一些非常大的对象。用户需要一些特定的内容,然后希望将其从内存中删除。这可以使用以下代码进行演示:Python删除对象作为参数接收,python,garbage-collection,Python,Garbage Collection,我调用一个函数,给它一些非常大的对象。用户需要一些特定的内容,然后希望将其从内存中删除。这可以使用以下代码进行演示: 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
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
中的特定内容,一旦检索到它,我就不再在内存中驻留obj。我想做我的“长期工作”,而不浪费大量的时间
这可以实现吗?将大对象包装在列表中。然后可以删除list元素,对象将成为可垃圾回收的对象
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
将大对象包装到列表中。然后可以删除list元素,对象将成为可垃圾回收的对象
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
do
specific_value=obj.在调用func()之前获取一些需要的_value()del obj
并将specific_value作为参数传递给funcdospecific_value=obj.在调用func()之前获取一些需要的_value()del obj
并将specific_value作为参数传递给func()