Oltmans wrote:
I've a multithreaded program in which I've to call class methods from
class methods. Here is how my code look like (excluding imports),. Any
help is highly appreciated.
#!/usr/bin/env python
class Requests(Thread):
def __init__(self, times):
Thread.__init__(self)
self.times=times
self.name=''
def run(self):
sites=['example.com','example1.com']
for i in range(0,self.times):
for site in sites:
self.name = site
self.html=SendRequest() # This line throws an error
You should (almost) always display the error traceback. I suspect
NameError: global 'SendRequest' not found. You need
Requests.SendRequest. but...
def SendRequest(self): #A class method
If it were, then call the parameter 'cls', not 'self'. But it is not a
classmethod without @classmethod decorator. but...
# it sends a request to website using mechanize library
Does this need to send the class rather than instance object to the
website? If not, better to leave it an instance method and use
self.SendRequest above. If the request uses instance variables, then it
*must* be an instance method!
def startThis(times,reqs):
threads=[]
for i in range (0,reqs):
owner=Requests(times)
owner.start()
threads.append(owner)
for thread in threads:
thread.join()
if __name__=="__main__":
#I want to create 2 threads, each of them will execute twice. At
least that is the intention.
startThis(2,2)
--
http://mail.python.org/mailman/listinfo/python-list
--
http://mail.python.org/mailman/listinfo/python-list