Threading and tkinter

Scott David Daniels Scott.Daniels at Acm.Org
Fri Feb 20 00:19:42 CET 2009

gert wrote:
> Hope you do not mind ignoring part of answers, so I can figure out
> more why things work the way they are.
> This two examples work, what i do not understand is that in function
> display i do not have to declare root, v or x ?
> x=0
> def weegbrug():
>     global x
>     while True:
>         x=x+1
>         sleep(0.5)
> start_new_thread(weegbrug,())
> def display():
>     v.set(x)
>     root.after(500, lambda:display())
1) Note that x, v, and root are read and manipulated, but not written.
    So, they do not need to be declared global (global is only needed
    to declare writable global names).
2) The last statement could more easily be written:
    root.after(500, display)
> root.after(500, lambda:display())
Again you can write this:
    root.after(500, display)

--Scott David Daniels
Scott.Daniels at Acm.Org

More information about the Python-list mailing list