On Dec 24, 4:56 pm, Sponge Nebson <neb...@gmail.com> wrote: > Hello all, > > This is my first post. Nice to meet you all! Could one of you walk me > through this code? > > def myThread(*argtuple): > """ > A little thread we've added > """ > print "myThread: entered" > q = argtuple[0] > print "myThread: starting loop" > x = 10 > while True: > time.sleep(10) # time unit is seconds > print "myThread x=%d" % x > q.put(str(x)) # stick something on message queue > wx.WakeUpIdle() # triggers 'idle' handlers > x += 10 > > It is from David McNab and Alex Tweedly's tutorial on timers and > threads, which can be found here: > > http://pythoncard.sourceforge.net/timers-threads.html > > Among my questions are: > """ A little thread we've added""" seems to be an isolated string. It > does not seem to be doing anything there, almost like a comment. Why > is it there?
That's what some people call a doc string. It is like a comment in that it helps the user know what the function is for. Notice the triple quotes. If you were to type "help(myFunction)", it would grab the functions doc string and display it. You can read up on them here: http://diveintopython.org/getting_to_know_python/documenting_functions.html > > What is argtuple for? how does it work? This allows the programmer to pass an arbitrarily long argument list to the function. It took a little digging, but I found it in the docs (scroll down towards the bottom): http://docs.python.org/tutorial/controlflow.html#SECTION006600000000000000000 > > What is the queue for? > > Thanks! > > -Ben I haven't messed with queues as yet, but they are one way of dealing with multiple threads in GUI programming. The idea is to stick something in the queue for the GUI thread (or potentially some other thread) to pick up when it's not busy. So one thread sticks something on the queue and another thread checks the queue periodically to see if there's something there and if there is, it picks it up. At least, that's my understanding. You can read up on various methods of messing with threads in wxPython here: http://wiki.wxpython.org/LongRunningTasks And here are the queue docs (for 2.6...): http://docs.python.org/library/queue.html I recommend learning how to use Google effectively. I found about half the links above using it. You might also find joining the wxPython mailing list beneficial. I learn a lot there just by reading and posting to it: http://wxpython.org/maillist.php - Mike -- http://mail.python.org/mailman/listinfo/python-list