我处在这样一种情况,我想在一个循环中放入一个线程,这取决于在一个被调用的函数中被改变的变量。这就是我想要的。
error= 0
while( error = 0)
run_thread = threading.Thread(target=self.run_test,args=(some arguments))
if ( error = 0)
continue
else:
break
现在运行测试调用一个函数说A和A调用B和B调用C。
def A()
B()
def B()
c()
def c()
global error
error = 1
这是我想要做的但是我无法解决这个问题。如果我尝试打印错误,我会在代码中出错。
有人可以帮我吗?
我是初学者,需要克服这个
答案 0 :(得分:0)
error = False
def A():
B()
def B():
c()
def c():
global error
error = True
def run_test():
while not error:
A()
print "Error!"
import threading
run_thread = threading.Thread(target=run_test,args=())
run_thread.start()
但是,最好是继承线程并重新实现run(),并使用异常:
def A():
raise ValueError("Bad Value")
import threading
class StoppableThread(threading.Thread):
def __init__(self, *args, **kwargs):
self.stop = False
def run(self):
while not self.stop:
A() #Will raise, which will stop the thread 'exceptionally'
def stop(self): #Call from main thread, thread will eventually check this value and exit 'cleanly'
self.stop = True