2013-04-26 89 views
0

我有一個程序,一次顯示許多tkinter PhotoImages(相關:我不使用PIL)。它目前有幾個屏幕,當遊戲到達邊緣時,它會加載一個新的tilemap,在清除舊內容後在currentTiles數組中創建更多的photoimages。我相當確定在這個程序的其餘部分沒有其他對這些照片的引用。Tkinter PhotoImage:內存中的引用?

奇怪的是,當我調用loadLevel函數後打印數組中最後一項的內容時,它會顯示諸如「pyimage3761」之類的內容,並且每次加載新屏幕時它都會增加。這是由於tkinter記錄到目前爲止已創建了多少個,還是因爲舊的tile仍在內存中?我不能爲了我的生活找出哪裏可以有另一個參考,所以我只是想知道在我花幾個小時尋找錯誤之前是否還有其他可能性。

謝謝!

回答

1

爲每個創建的圖像分配一個唯一的名稱(除非在創建時指定圖像的名稱)。這個唯一的名字是通過使用一個單調增加的計數器產生的。

+0

即使先前的內存不再在內存中? – 2013-04-26 17:19:58

+0

這與什麼有關? – 2013-04-26 17:23:44

+0

我的問題是,以前創建的照片是否已通過我缺少的隱含參考保留在記憶中。我似乎無法找到一個,所以我想知道pyimages上的數字是否增加,而不管之前的數字是否仍保留在內存中。抱歉不清楚。 – 2013-04-26 18:23:43