Мне интересно, что здесь происходит. Когда я запускаю эту программу, я замечаю, что память из класса TestFrame (200 МБ или около того) все еще используется даже после того, как я уничтожил ее и удалил все ссылки на нее.
import tkinter as tk
import tkinter.ttk as ttk
class TestFrame(ttk.Frame):
def __init__(self, master):
super().__init__(master)
self.bigDictionary = {'Hello World' + str(num): 'Hello World' + str(num) for num in range(1000000)}
self.testLabel = ttk.Label(self, text='This is a test Label')
self.testLabel.grid()
root = tk.Tk()
testFrame = TestFrame(root)
testFrame.grid()
testFrame.destroy()
testFrame = ''
root.mainloop()
Затем я удалил метка не является атрибутом, например:
def __init__(self, master):
super().__init__(master)
self.bigDictionary = {'Hello World' + str(num): 'Hello World' + str(num) for num in range(1000000)}
testLabel = ttk.Label(self, text='This is a test Label')
testLabel.grid()
Когда я запускал этот код, я заметил, что Python больше не удерживает память от фрейма вокруг. Может ли кто-нибудь дать некоторое представление о том, что здесь происходит?