while True:
  mess = raw_input('Type: ')
  //other stuff

尽管用户没有输入任何内容,但我无法执行//other stuff。我该怎么办,其他东西会被执行,但是,如果用户当时输入任何内容,乱七八糟的东西会改变它的值?

最佳答案

您应该在工作线程中生成其他内容。

import threading
import time
import sys

mess = 'foo'

def other_stuff():
  while True:
    sys.stdout.write('mess == {}\n'.format(mess))
    time.sleep(1)

t = threading.Thread(target=other_stuff)
t.daemon=True
t.start()

while True:
  mess = raw_input('Type: ')

这是一个简单的示例,其中mess为全局变量。请注意,为了在工作线程和主线程之间进行线程安全的对象传递,应使用Queue对象在线程之间传递事物,而不要使用全局对象。

10-01 23:39