有什么方法可以对本地定义的函数进行doctest?例如,我想要
def foo():
""" >>> foo()
testfoo"""
def foo2():
""" >>> 1/0 """
print 'testfoo'
foo2()
不通过测试。但是我仍然不想为整个模块设置foo2全局的...
最佳答案
谢谢。我已经担心文档字符串之外的代码将无法解决。我仍然认为,导入一个函数的本地变量可能会有窍门,从而可以访问嵌套函数。无论如何,使用Alex方法的解决方案将显示为
def foo(debug=False):
"""
>>> foo()
testfoo
>>> foo(debug=True)
"""
def foo2():
"""
>>> 1/0"""
print 'testfoo'
if debug :
import doctest
for f in [foo2]: doctest.run_docstring_examples(f,locals())
foo2()
现在唯一的问题是如何使这种方法自动化,所以有人
for f in locals().values(): doctest.run_docstring_examples(f,locals())
但没有导入和内置的函数和变量。
关于python - doctest本地定义的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2403237/