2024-04-26 09:55:03 发布
网友
我怎样才能使一个对象不可破坏,即使使用del保留字(我认为它意味着强制删除),它也不会被删除?你知道吗
del
我将对象存储在一个列表中,如下所示:
list = [obj1, obj2, obj3, obj4 ....] del list[0]
我想我必须对object类中的__del__()做一些技巧,但是怎么做呢?你知道吗
__del__()
python中的对象具有引用计数,这基本上意味着对象存在于其中的位置的数量。使用del删除对对象的一个引用(它不会强制删除它)。^当剩下0个引用时,调用{a1}。您可以创建对该对象的新引用,这样可以防止删除该对象,如下所示:
class obj: def __del__(self): global _ref _ref = self return
这将防止通过创建全局引用来删除对象。 请记住,不建议这样做,因为这样会阻止垃圾收集器正常工作。你知道吗
更新:
在使用列表的情况下,应将其转换为tuple等不可变对象,以防止发生删除等更改:
tuple
mylist = [obj1, obj2, obj3, obj4 ....] mylist = tuple(mylist)
python中的对象具有引用计数,这基本上意味着对象存在于其中的位置的数量。使用
del
删除对对象的一个引用(它不会强制删除它)。^当剩下0个引用时,调用{a1}。您可以创建对该对象的新引用,这样可以防止删除该对象,如下所示:这将防止通过创建全局引用来删除对象。 请记住,不建议这样做,因为这样会阻止垃圾收集器正常工作。你知道吗
更新:
在使用列表的情况下,应将其转换为
tuple
等不可变对象,以防止发生删除等更改:相关问题 更多 >
编程相关推荐