我在python 2.7.9中有一个包含两个方法的类,如下所示:
class test:
def __init__(self):
self.a=True
def print_hi(self):
if self.a==True:
while True:
print 'hi'
def stop(self):
self.a=False
if __name__=='__main__':
play=test()
play.print_hi()
play.stop()
如果我愿意,可以通过调用'stop'方法停止'print_hi'中的while循环?我知道我必须以这样的方式更改代码:在while循环的每次迭代中,可以检查实例变量'a'(self.a)的值。我想通过stop方法这样做。是否有一种pythonic方式来做到这一点?
答案 0 :(得分:1)
您可以按照以下步骤执行此操作:
PS:你可以将“True”改为“self.a”,我认为它会更好。
import threading
import time
class test(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.a=True
def run(self):
self.print_hi()
def print_hi(self):
while self.a:
print 'hi'
def stop(self):
self.a=False
if __name__=='__main__':
play=test()
play.start()
time.sleep(2)
play.stop()