編輯:已解決。感謝幫助的人,但看起來問題在於列表被覆蓋並轉換爲精靈組,導致所有列表操作無用。從列表中刪除未引用的對象
我最近開始在Python編程(總是襯托警鐘),所以我道歉,如果我編寫做事的方式略有嚇人。這個特定程序導入pygame(使用'引擎')。
我試圖創建一個包含對象/精靈的列表。但是,我似乎已經實現了,不再需要時,從列表中刪除對象時出現問題,因爲對象沒有特定的指針,據我所知。
精靈類的構造如下;
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)>, ...]
有一種方法,以從列表中刪除實例時在其中不存在明顯的存儲器指示符的情況下,使用卸下襬臂(x)時不再需要了嗎?如果沒有/或/和可以有人推薦一個更好的方式來做到這一點。
您可以使用'lst.remove(self)',但是您需要對類內部列表的引用。 – 2012-03-27 20:11:02
@NiklasB。如果'sprList_PointSet'是一個全局變量,只要他不嘗試設置它,他就可以很好地引用它。 – agf 2012-03-27 20:12:20
@agf:不過,如果不是,那會更好。 – 2012-03-27 20:16:50