在WHILE循环中,我想运行两个函数,一个是基函数,每次都会运行,另一个是user_input函数,当用户输入'撤防时,程序可以运行user_input函数。 这两个函数需要在WHILE循环中,所以可以一直运行。
我怎么能写一个函数来完成这个?
因为它是实时的所以我不能在线程中添加time.sleep。
感谢。
import threading
class BackInput(threading.Thread):
def __init__(self):
super(BackInput, self).__init__()
def run(self):
self.input = raw_input()
while True:
threading1 = BackInput()
threading1.start()
threading1.join()
if threading1.input == 'disarm':
print 'Disarm'
break
print 'Arm'
在此代码中,程序应该每秒打印一次Arm,当我键入撤防时,它可以打印撤防并打破它。
答案 0 :(得分:1)
你真的需要更具体。为什么这些需要在线程中?您应该向我们展示您尝试过的内容,或者更详细地描述您要完成的任务。
在您当前的设置中,您将线程置于循环中,因此它无法独立于每个用户输入运行。
已修改:根据您的帖子编辑和评论,这里有一些清理过的代码作为示例。
import threading
import time
import sys
def background():
while True:
time.sleep(3)
print 'disarm me by typing disarm'
def other_function():
print 'You disarmed me! Dying now.'
# now threading1 runs regardless of user input
threading1 = threading.Thread(target=background)
threading1.daemon = True
threading1.start()
while True:
if raw_input() == 'disarm':
other_function()
sys.exit()
else:
print 'not disarmed'