Hello, here is the small program:

from tkinter import *

class Test:
   def __init__(self):
       root = Tk()
       label = Label(root, text="this is a test")
       label.pack()
       root.mainloop()

test=Test()

I dont understand why this program works. After execution
of function __init__, local variables 'root' and 'label' should disapear and the widgets Tk and Label should be garbage collected. But it's not the case, the window Tk is still on the screen with the label inside it. Why ?

Usually, we write:

class Test:
   def __init__(self):
       self.root = Tk()
       self.label = Label(self.root, text="this is a test")
       self.label.pack()
       self.root.mainloop()

test = Test()

to keep some references to Tk() and Label()
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to