我有一个包含多个全局函数的模块和一个全局变量。变量和一些函数遵循Python的“私有”命名约定,名称的前导下划线。其他功能旨在公开,并且没有前导下划线。
我已在文件的开头声明了__all__
,其中包含我的公共函数名称列表。
当尝试使用epydoc生成此模块的文档时,epydoc正在将模块中的所有视为私有。而且,由于我使用--no-private
标志,这意味着输出仅显示模块本身的文档,而不是模块的元素或其各自的文档。
如果我不在epydoc中使用--no-private
标志,那么所有内容都会被记录下来。但我不想要那里的私人物品。这是踢球者:如果我注释掉我的__all__
,epydoc会正确记录我模块的公共元素。
我是一个相对的Python新手,但据我了解,__all__
是为了让你在导入其他模块时让你免于麻烦,然后其他模块导入你的,以及试图保持更严格的盖子只要您知道您要访问的内容的名称,那么当所有内容都是技术上公开的时候。省略__all__
会导致Bad Things™,或者我被告知。与此同时,epydoc声称正确并且离开了它,以表彰__all__
来决定什么是公开的,什么不是。
我是否正在使用epydoc错误,假设我的代码中__all__
的使用不正确,或者是epydoc中的错误? (我已经解决了epydoc中的一个错误处理错误,这显然是由较新版本的docutil引起的。)
答案 0 :(得分:3)
使用epydoc记录多个文件时,此问题消失。它似乎是epydoc中的一个错误,但它很容易解决,只要你有一个实际的文档包,而不是一个模块。