我是python的新手,并且在使用模块打印出正在接收的数据包时,我无法执行代码,而正在执行读取数据包的while循环。这是一个基本的例子。任何帮助,将不胜感激。
def foo():
while True:
print("bar")
foo()
print("foobar")
我希望它在while循环开始后一次打印foobar,这可能吗?
答案 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
循环中放置一个特殊情况,用于第一次传递,报告您想要的内容。或者你可以考虑使用多个执行线程 - 一个高级主题。