import math
import time
from threading import Thread
class SquareRootCaluatotor:
"""This class spawn a separate thread to calculate a bunch of square roots ,and checks in it once a second until it finishes"""
def __init__(self,target):
"""Turn on the calculator thread and,while waiting for it to finish,periodically monitor its progress"""
self.result = []
counter = self.CalculatorThread(self,target)
print("Turning on the calculator thread")
counter.start()
while len(self.result)<target:
print("%d square roots calculated so far." %len(self.result))
time.sleep(1)
print("calculated %s square root;the last one is sqrt(%d)=%f" %(target,len(self.results),self.result.results[-1]))
class CalculatorThread(Thread):
"""A separate thread which actually does the calculations."""
def __init__(self,controller,target):
"""Set up this thread,including makeing it a daemon thread so that the script can
end without waiting for this thread to finish"""
Thread.__init__(self)
self.controller = controller
self.target = target
self.setDaemon(True)
def run(self):
"""Calculate square roots for all numbers between 1 and the target, inclusive."""
for i in range(1,self.target+1):
self.controller.results.append(math.sqrt(i))
if __name__ == 'main':
import sys
limit = None
if len(sys.argv) >1:
limit = sys.argv[1]
try:
limit = int(limit)
except ValueError:
print("Usage:%s [number of square roots to calculate"
% sys.argv[0])
SquareRootCaluatotor(limit)求教:1在给SquareRootCaluatotor类实例后运行,总是提示无CalculatorThread属性,请问这是为什么? 2 这个文件的正确运行步骤是什么?我给SquareRootCaluatotor赋变量运行是否正确?
添加回答
举报
0/150
提交
取消