Local variables to a function doesn't disapear after function execution. Why ?
Christian Gollwitzer
auriocus at gmx.de
Wed Oct 12 07:25:28 EDT 2016
Am 12.10.16 um 13:18 schrieb ast:
> 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 ?
Because the Test() call does never terminate. You have the mainloop
inside of your constructor. As long as this loop runs, your program
exists. Try it by putting
test=Test()
print("Now I am here")
and you'll see.
Christian
More information about the Python-list
mailing list