我可以清除 python 环境,以便在启动后将评估器置于同一状态机吗?
我希望我不会重新启动评估程序。
您不能仅使用 Python 代码真正重置 Python 解释器的状态,尽管您可以使用嵌入 Python 解释器的自定义 C 程序来做到这一点。
但是,对于您的特定情况,在子解释器中运行每个“问题”可能就足够了,就像这样......
import sys
import code
def reset():
raise SystemExit(123)
sys.modules['__builtin__'].reset = reset
banner = None
while 1:
try:
code.interact(banner=banner, local={})
break
except SystemExit as e:
if e.code == 123:
banner = 'Resetting...'
continue
raise
...然后当您运行该脚本时,您可以像这样使用它...
Python 2.7.4 (default, Apr 19 2013, 18:28:01)
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> dir()
['__builtins__']
>>> a = 1
>>> dir()
['__builtins__', 'a']
>>> reset()
Resetting...
>>> dir()
['__builtins__']
这个怎么样:
>>>globals().clear()