V subore mysocket.py mam triedu MySocket a v subore timer.py mam triedu RepeatTimer, ktora dedi od threading.Thread a ma pretazenu metodu run()
Kód: Vybrať všetko
class RepeatTimer(Thread):
def __init__(self, interval, function, iterations=0, args=[], kwargs={}):
Thread.__init__(self)
self.interval = interval
self.function = function
self.iterations = iterations
self.args = args
self.kwargs = kwargs
self.finished = Event()
self.ret = None
def run(self):
count = 0
while not self.finished.is_set() and (self.iterations <= 0 or count < self.iterations):
if not self.finished.is_set():
self.ret = self.function(*self.args, **self.kwargs)
count += 1
self.finished.wait(self.interval)
def cancel(self):
self.finished.set()Problem nastava pri triede RepeatTimer. Jej konstruktor v argumente ocakava funkciu, ktoru bude v metode run() volat.
Pri kode
Kód: Vybrať všetko
soket = MySocket("www.hojko.com", 80)
get_cmdlist_t = RepeatTimer(2.0, soket.get, "/index.php")Kód: Vybrať všetko
self.ret = self.function(*self.args, **self.kwargs)
TypeError: get() takes exactly 2 arguments (1 given)Skusal som aj
Kód: Vybrať všetko
soket = MySocket("www.hojko.com", 80)
get_cmdlist_t = RepeatTimer(2.0, soket.get, soket, "/index.php")Kód: Vybrať všetko
self.ret = self.function(*self.args, **self.kwargs)
TypeError: get() takes exactly 2 arguments (11 given)MySocket.get(self, page):
Kód: Vybrať všetko
def get(self, page):
self.s.send("GET %s HTTP/1.0\r\nHost: %s\r\nUser-Agent: %s\r\n\r\n" % (page, self.host, self.useragent))
data = self.s.recv(1024)
return data