我有一个包含多个全局函数和一个全局变量的模块。变量和一些函数遵循 Python 的“私有”命名约定,名称前导下划线。其他函数旨在公开,并且没有前导下划线。
我已经__all__
在我的文件开头声明了我的公共函数名称列表。
当尝试使用epydoc为该模块生成文档时,epydoc将模块中的所有内容视为私有。而且,由于我使用的是--no-private
标志,这意味着输出只显示模块本身的文档,而不是模块的元素或它们各自的文档。
如果我不将--no-private
标志与 epydoc 一起使用,则所有内容都会记录在案。但我不想要那里的私人事物。这是踢球者:如果我注释掉我的__all__
, epydoc 正确地记录了我的模块的公共元素。
我是一个相对的 Python 新手,但据我了解,这__all__
是为了让您在导入其他模块然后其他模块导入您的模块时避免麻烦,并在所有技术上公开时试图对事情保持更严格的控制,只要您知道要访问的内容的名称。省略__all__
会导致 Bad Things™,或者我被告知。同时,epydoc 声称它为__all__
决定什么是公开的,什么不是公开的而感到荣幸。
是我错误地使用了 epydoc,错误地假设了__all__
我的代码中的使用,还是 epydoc 中的错误?(我已经解决了 epydoc 中的一个错误处理错误,这显然是由较新版本的 docutils 引起的。)