2015-05-26 121 views
-1

我正在爲了好玩(看看我能做到)而用Python編寫的文本冒險遊戲。我正在爲這些實體開發模塊,並且正在爲他們被殺的一種方法工作。當一個實體被殺死,而不是隻顯示一個kill消息並且渲染實體無法動作,我還希望它的實例被刪除以節省內存。Python類實例刪除自己

如何讓實體類的實例自己刪除?

例如(部分僞代碼):

class Entity(object): 
    #other methods here 

    def kill(self): 
     if self.health <= 0: 
      self.deleteinstance 
      or 
      deleteinstance(self) 

預先感謝您的幫助。

編輯:我明白,這是一個重複的,但在所有其他人的答案引用對象被刪除時,什麼都沒有引用它們。我的問題在於如何使這個類的實例無所作爲,因爲如果沒有kill方法,推測實例仍然會存在負面健康狀況。

+0

Python對象是垃圾回收。您只需刪除對它們的引用,它們就會自動刪除。 Google Python對象生命週期包括[此SO帖子](http://stackoverflow.com/questions/11894045/python-object-lifetime-characteristics)以獲取更多信息。 – dawg

回答

2

現在,你爲什麼要這樣做?

一旦沒有指向它們的東西,Python中的對象就會被垃圾回收,所以你不必擔心。否則,你應該在這個其他SO問題中檢出一些答案:Python object deleting itself

你可以嘗試:

def kill(): 
    if self.health < 0: 
     del self 
+0

謝謝,我會試試這個。我沒有意識到這是重複的。 – jm13fire

+0

查看其他問題的答案,他們有更多可能有用的內容。 – Zizouz212

+3

'del self'不會完成一旦方法結束時Python不會執行的任何操作。 – kindall