我希望Roach类在达到一定量的"饥饿"时"死",但我不知道如何删除该实例.我的术语可能犯了一个错误,但我的意思是我在窗户上有很多"蟑螂",我希望特定的东西完全消失.
我会告诉你代码,但它很长.我将Roach类附加到Mastermind类的roach种群列表中.
Rob*_*ujo 20
一般来说:
有几种常用方法可以减少引用(取消引用对象 - >变量绑定):
del variable
也将删除当前上下文中的引用在删除对一个对象的所有引用(counter == 0)之后,它成为垃圾收集的良好候选者,但不保证它将被处理(这里引用):
CPython目前使用带有(可选)延迟检测循环链接垃圾的引用计数方案,它会在大多数对象无法访问时立即收集,但不保证收集包含循环引用的垃圾.有关控制循环垃圾收集的信息,请参阅gc模块的文档.其他实现的行为不同,CPython可能会改变.当对象无法访问时,不要依赖于对象的立即终结(例如:始终关闭文件).
有多少对象存在的引用,请使用sys.getrefcount
用于配置/检查垃圾收集的模块是gc
GC将在销毁对象时调用object .__ del__方法(此处另外引用)
一些不可变的对象如字符串以特殊的方式处理 - 例如,如果两个vars包含相同的字符串,它们可能引用相同的对象,但有些不是 - 检查标识对象,为什么返回的值来自id(...)更改?
module memory_profiler看起来很有趣 - 一个用于监视python程序的内存使用情况的模块
这个主题有很多有用的资源,例如:在python中查找对象的所有引用
Ign*_*ams 11
您无法强制删除Python对象; 当没有任何东西引用它时(或者它在循环中仅被称为循环中的项目时)它将被删除.你必须告诉你的"Mastermind"删除它的参考.
del somemastermind.roaches[n]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
78863 次 |
最近记录: |