python - 从列表中删除未引用的对象

标签 python list pygame

编辑:已解决。感谢大家的帮助,但问题似乎是列表被覆盖并转换为 sprite 组,导致所有列表操作都无用。

我最近开始使用 Python 进行编程(总是敲响警钟),所以如果我的编码方式有点吓人,我深表歉意。此特定程序导入 pygame(正在使用的“引擎”)。

我正在尝试创建一个包含对象/ Sprite 的列表。我似乎已经实现了这一点,但是,一旦不再需要该对象,我就无法从该列表中删除该对象,因为据我所知,该对象没有特定的指针。

Sprite 类构造如下;

class Point(pygame.sprite.Sprite):
    def __init__(self,pos=(0,0)):
        pygame.sprite.Sprite.__init__(self)

        #Unimportant code

        self.dead=False
        print self
        #This prints; "<Point sprite(in 0 groups)>"

    def update(self):
        if(self.dead):
            #sprList_PointSet.remove(?)
            pass

创建对象和列表;

sprList_PointSet=[]
sprList_PointSet+=[Point((50,90))]
sprList_PointSet+=[Point((65,110))]
# ...

print sprList_PointSet
#This prints; [<Point sprite(in 0 groups)>, <Point sprite(in 0 groups)>, ...]

在没有明显内存指示器的情况下,是否可以使用 .remove(x) 从列表中删除不再需要的实例?如果不是/或/,有人可以推荐一种更好的方法。

最佳答案

您可以使用 weak references让一个实例在“重要的”不再需要它时消失。

关于python - 从列表中删除未引用的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9896852/

相关文章:

python - TensorBoard - 并排查看图像摘要?

c - 不工作单链表 C

python - 如何在 Pygame 中将 'blit' 图像显示到屏幕上

r - 如何使用 purrr::pmap 调用 R 中的用户定义函数

python - 如何在特定时间间隔连续触发 Action ?敌人在pygame中发射恒定光束而不是子弹

python - SDL: "working natively in C++"是什么意思?

python - Django MySQL 完整性错误 : ("Field ' created_at' doesn't have a default value")

python - 有没有更好的方法在 python 中屏蔽信用卡号?

python - python 解析器如何包含 "AT"文件(ini)

python - python append 到列表是如何工作的?