有没有办法在python doctest中重新启动或重置python解释器?

问题描述:

我写一个简短的教程,并希望能够通过使用python的文档测试在其中运行示例有没有办法在python doctest中重新启动或重置python解释器?

蟒蛇-m文档测试foo.txt的

有一个点在教程我想开始使用一个新的,干净的Python解释器。有没有这样的机制?

如果你想要的是开始一个新的Python解释器Python解释器里面你可以发出命令:使用os.system(“蟒蛇”)

Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on 
win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> dir() 
['__builtins__', '__doc__', '__name__', '__package__'] 
>>> import os 
>>> dir() 
['__builtins__', '__doc__', '__name__', '__package__', 'os'] 
>>> os.system('python') 
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on 
win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> dir() 
['__builtins__', '__doc__', '__name__', '__package__'] 
>>> quit() 
0 
>>> dir() 
['__builtins__', '__doc__', '__name__', '__package__', 'os'] 
>>> 

但是,如果要重新启动或重置python解释器,而不是像上面那样启动一个新的Python解释器,你可以看看这个解决方案。我没有探索它,但应该帮助你开始。

Restarting a Python Interpreter Quietly

+0

聪明,但它不会从文档测试中工作:孩子开始的时候,等待从标准输入。我需要研究doctest如何处理stdin和stdout以查看popen的相关解决方案是否可行...... – EHN 2011-05-13 13:42:33

+0

使用savestate配方引用的“静音重新启动Python解释器”appreach并不真正重置状态,例如它不会不定义任何交互式定义的函数。 – EHN 2011-05-13 14:10:16