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作为参数传递给funcdo
specific_value=obj.在调用func()之前获取一些需要的_value()del obj
并将specific_value作为参数传递给func()