On Mar 26, 1:17 am, grocery_stocker <cdal...@gmail.com> wrote: > On Mar 25, 7:05 am, grocery_stocker <cdal...@gmail.com> wrote: > > > > > Given the following code... > > > #!/usr/bin/env python > > > import time > > import thread > > > def myfunction(string,sleeptime,*args): > > while 1: > > > print string > > time.sleep(sleeptime) #sleep for a specified amount of time. > > > if __name__=="__main__": > > > thread.start_new_thread(myfunction,("Thread No:1",2)) > > > while 1:pass > > > Taken from following URL....http://linuxgazette.net/107/pai.html > > > How can myfunction() extract the tuple ("Thread No:1",2) from > > start_new_thread() if myfunction is only being passed the single arg > > ("Thread No:1",2) > > The only thing that I think of is that the tuple ("Thread No:1",2) is > somehow being extract before it gets passed to myfunction(). Ie, > something like the following... > > [cdal...@localhost ~]$ python > Python 2.4.3 (#1, Oct 1 2006, 18:00:19) > [GCC 4.1.1 20060928 (Red Hat 4.1.1-28)] on linux2 > Type "help", "copyright", "credits" or "license" for more information.>>> def > myfunction(first, second, *args): > > ... print "The formal args are: ", args > ... print "the first value is:", first > ... print "the second value is:", second > ...>>> a, b = (1,2) > >>> myfunction(a,b) > > The formal args are: () > the first value is: 1 > the second value is: 2
Manual sez: thread.start_new_thread(function, args[, kwargs]) where args must be a tuple so thread.start_new_thread does this (ignoring the kwargs): function(*args) or it would if it were written in Python instead of C. HTH John -- http://mail.python.org/mailman/listinfo/python-list