私はプログラミングが初めてで、ガベージ コレクションのしくみを理解できません。次の例では:
import Tkinter as tk
a = 0
class Object1:
def __init__(self):
global a
a = tk.Frame()
a.pack()
b = tk.Button(a, text="click me", command=self.callback)
b.pack()
def callback(self):
print "clicked!"
program = Object2()
class Object2:
def __init__(self):
global a
a.destroy()
a2 = tk.Frame()
a2.pack()
b = tk.Label(a2, text='This is the second object.')
b.pack()
program = Object1()
tk.mainloop()
Object1 のインスタンスである「program」は最後に残っていますか? どうにかして明示的に削除する必要がありますか? この構造を何度も繰り返すと、各 Objectx に前のフレームを破棄し、新しいコンテンツを含む新しいフレームを追加するボタンがある場合、プログラムが進行するにつれて、より多くのメモリが消費されますか? 助けてくれてありがとう。