python idle和cmd环境下执行的效果不一样
#coding:utf8importthreadingimporttimeimportsysdeffunc():while1:print'test'time.sleep(...
#coding:utf8
import threading
import time
import sys
def func():
while 1:
print 'test'
time.sleep(1)
class MyThread(threading.Thread):
def __init__(self,func):
threading.Thread.__init__(self)
self.func = func
def run(self):
self.func()
if __name__ == '__main__':
T = MyThread(func)
T.setDaemon(True)
T.start()
try:
input('')
except KeyboardInterrupt:
print 'finished'
sys.exit(0)
以上为例子,我想做一个能够通过键盘打断的功能,为啥idle和cmd python执行效果不一样,求解释 展开
import threading
import time
import sys
def func():
while 1:
print 'test'
time.sleep(1)
class MyThread(threading.Thread):
def __init__(self,func):
threading.Thread.__init__(self)
self.func = func
def run(self):
self.func()
if __name__ == '__main__':
T = MyThread(func)
T.setDaemon(True)
T.start()
try:
input('')
except KeyboardInterrupt:
print 'finished'
sys.exit(0)
以上为例子,我想做一个能够通过键盘打断的功能,为啥idle和cmd python执行效果不一样,求解释 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
那这段程序在哪里能正常执行,命令行还是IDLE?
对于异常的情况,表现是什么?
对于异常的情况,表现是什么?
追问
cmd能正常运行,也就是能够打断,打断后子线程会死掉,idle上运行和想的不一样,打断后,子线程还活着
追答
个人见解:
在命令行下,主进程结束是指python主进程结束,python整个结束了那么子线程也会结束。
在但IDLE下,我推测子进程可能挂到IDLE下继续执行了。或者说,IDLE和操作系统命令行的机制是不一样的。
总之,这不是我见过的第一个IDLE引发的bug。建议只在命令行下允许python脚本。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询