有没有办法在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解释器,你可以看看这个解决方案。我没有探索它,但应该帮助你开始。
聪明,但它不会从文档测试中工作:孩子开始的时候,等待从标准输入。我需要研究doctest如何处理stdin和stdout以查看popen的相关解决方案是否可行...... – EHN 2011-05-13 13:42:33
使用savestate配方引用的“静音重新启动Python解释器”appreach并不真正重置状态,例如它不会不定义任何交互式定义的函数。 – EHN 2011-05-13 14:10:16