函数如何知道它在哪个模块中?

我一直在使用docstring锻炼我的每个模块,与代码是这样的:def _t ():进口doctesttestmod ()if __name__ = ="__main__":_t ()这是伟大的,当我执行每个模块本身。然而,如果我从别的地方想叫mymodule._test(),它不工作,因为testmod __main__模块而不是()测试mymodule里。当然改变调用这不起作用:testmod (mymodule里)这实际上工作正常(如果我导入模块标准名称)在其他地方,但不是我直接执行它时,或(我猜)如果导入的模块是在一个不同的名称。我想表达的是"doctest这个模块,在这里,一个这段代码是在!"但是我找不到一个干净的方法。我注意到一个函数对象有一个__module__属性,这是一个引用模块的函数。但这只是把问题一个步骤:一个函数可以引用本身如何?我肯定有一个神奇的标识符的地方,可以让代码得到引用自己的模块,但是我没能找到它。可以有人分享的线索?谢谢,-乔

# 回答1

乔Strout <乔* @strout.netwrites:没有。有人一但被拒绝了。不过我想你可以很容易实现这一目标。在mymodule.py--------------def _t ():进口doctest进口mymodule里testmod (mymodule里)就是这样!--Arnaud

标签: python

添加新评论