Python - 在while循环期间无法运行代码

时间:2015-06-25 23:25:15

标签: python python-3.x

我是python的新手,并且在使用模块打印出正在接收的数据包时,我无法执行代码,而正在执行读取数据包的while循环。这是一个基本的例子。任何帮助,将不胜感激。

def foo():
    while True:
        print("bar")

foo()
print("foobar")

我希望它在while循环开始后一次打印foobar,这可能吗?

2 个答案:

答案 0 :(得分:0)

程序按顺序执行,因此print永远不会因为无限循环而发生。因此,您必须使用线程来解决此问题,允许您同时执行代码:

threading.Thread(target = foo).start() # new thread instead of foo() in the main thread

答案 1 :(得分:0)

通常在Python(以及大多数其他语言)中,您只需要一个执行线程。

while True: ...是一个无限循环 - 除非循环中的代码爆发,或外部中断它,它永远不会结束。因此,您的代码永远不会调用print('foobar')行。

您可以在while循环中放置一个特殊情况,用于第一次传递,报告您想要的内容。或者你可以考虑使用多个执行线程 - 一个高级主题。