Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从类中删除类的实例_Python_Python 3.x - Fatal编程技术网

Python 如何从类中删除类的实例

Python 如何从类中删除类的实例,python,python-3.x,Python,Python 3.x,因此,在我的例子中,我有一个类Gnome,我想在它的变量health达到0时销毁这个类的每个对象。当Gnome的hp为0时,我有没有办法删除它的每个实例?或者我应该“将它标记为死亡”并删除所有标记的实例?无论哪种方法,我都可以这样做?不幸的是,没有一种方法可以满足你的需求。每个Python对象都维护一个记录,记录有多少引用到它。一旦引用计数达到0,Python垃圾回收器将清除它 只要您还有对实例的引用,它们就会一直存在。不幸的是,没有一种方法可以实现您想要的。每个Python对象都维护一个记录,

因此,在我的例子中,我有一个类
Gnome
,我想在它的变量
health
达到0时销毁这个类的每个对象。当Gnome的hp为0时,我有没有办法删除它的每个实例?或者我应该“将它标记为死亡”并删除所有标记的实例?无论哪种方法,我都可以这样做?

不幸的是,没有一种方法可以满足你的需求。每个Python对象都维护一个记录,记录有多少引用到它。一旦引用计数达到0,Python垃圾回收器将清除它


只要您还有对实例的引用,它们就会一直存在。

不幸的是,没有一种方法可以实现您想要的。每个Python对象都维护一个记录,记录有多少引用到它。一旦引用计数达到0,Python垃圾回收器将清除它


只要你还有对实例的引用,它们就会一直存在。

你说的“销毁每个对象”或“删除每个实例”是什么意思?你认为这与什么具体行为有关?对这些对象的引用会发生什么情况?包含这些对象的容器会发生什么情况?请注意,对象生存期是Python中的一个实现细节。@Mistermiagi认为您可以直接从内存中删除它(例如del Gnome1——但这需要自动执行)。如果它有助于
del Gnome1
不从内存中删除对象,它会清除名称
Gnome1
。同样,您希望对已删除对象的引用有什么行为?容器应该仍然指向已删除的内存,还是忘记它?当尝试执行某些操作时,对对象的引用会看到什么?他们会看到损坏的内存、清除的(
NULL
?)内存、任意内存或旧内存内容吗?欢迎光临。请提供有关您的问题的详细信息,a以及您在发布之前尝试了什么。一些输入和预期输出的例子总是有用的。请检查一个问题以了解更多详细信息。您所说的“销毁每个对象”或“删除每个实例”是什么意思?你认为这与什么具体行为有关?对这些对象的引用会发生什么情况?包含这些对象的容器会发生什么情况?请注意,对象生存期是Python中的一个实现细节。@Mistermiagi认为您可以直接从内存中删除它(例如del Gnome1——但这需要自动执行)。如果它有助于
del Gnome1
不从内存中删除对象,它会清除名称
Gnome1
。同样,您希望对已删除对象的引用有什么行为?容器应该仍然指向已删除的内存,还是忘记它?当尝试执行某些操作时,对对象的引用会看到什么?他们会看到损坏的内存、清除的(
NULL
?)内存、任意内存或旧内存内容吗?欢迎光临。请提供有关您的问题的详细信息,a以及您在发布之前尝试了什么。一些输入和预期输出的例子总是有用的。请检查一个问题以了解更多详细信息。引用计数是CPython的一个实现细节-其他实现使用不同的方案来确定对象的生存期。使用
weakref
,可以在不延长对象生命周期的情况下引用对象。引用计数是CPython的一个实现细节-其他实现使用不同的方案来确定对象的生命周期。使用
weakref
,可以在不延长对象生命周期的情况下引用对象。