0

我正在开发 Spyder IDE,版本 3.0.0。我的 python 版本是 2.7.12。出于某种原因,atexit 机制在这个特定的 IDE 上不起作用。


代码

import atexit

def done():
    print '2'

atexit.register(done)
print '1'

结果

当我在 PyCharm 或 Windows cmd 中运行脚本时,它会打印:

1
2

当我从 Spyder 运行它时,没有调用 done 函数,也没有打印 2。最终结果是:

1

有人知道为什么会这样,我该如何解决?

谢谢!

4

1 回答 1

0

如果需要使用 atexit.register(),可以调用 atexit._run_exitfuncs,如答案:

https://stackoverflow.com/a/21634308/6669602

(或者你可以重启内核)

于 2017-11-30T19:36:26.397 回答