2024-05-28 20:56:11 发布
网友
我喜欢doxygen来创建C或PHP代码的文档。我有一个即将到来的Python项目,我想我记得Python没有/* .. */注释,还有它自己的自文档功能,这似乎是Python编写文档的方式。
/* .. */
因为我熟悉doxygen,所以如何使用它来生成Python文档?有什么特别需要我注意的吗?
doxypy输入过滤器允许您以标准Python docstring格式使用几乎所有Doxygen的格式化标记。我用它来记录一个大型的混合C++和Python游戏应用框架,并且它运行良好。
这里是documented on the doxygen website,但总结一下:
您可以使用doxygen来记录您的Python代码。您可以使用Python文档字符串语法:
"""@package docstring Documentation for this module. More details. """ def func(): """Documentation for a function. More details. """ pass
在这种情况下,doxygen将提取注释,但您将无法使用任何special doxygen commands。
或您可以(类似于doxygen下的C风格语言)将成员前面第一行的注释标记(#)加倍:
#
## @package pyexample # Documentation for this module. # # More details. ## Documentation for a function. # # More details. def func(): pass
在这种情况下,可以使用特殊的doxygen命令。没有特定的Python输出模式,但是通过将OPTMIZE_OUTPUT_JAVA设置为YES,可以明显地改善结果。
OPTMIZE_OUTPUT_JAVA
YES
老实说,我对这种区别有点惊讶——似乎一旦doxygen能够检测到blocks或“blocks”中的注释,大部分工作就会完成,而且在这两种情况下都可以使用特殊命令。也许他们希望使用“”的人遵守更多的Pythonic文档实践,这会干扰特殊的doxygen命令?
最后,你只有两个选择:
您可以使用Doxygen生成内容,也可以使用Sphinx*生成内容。
Doxygen:它不是大多数Python项目的首选工具。但是如果你必须处理其他用C或C++写的相关项目,这是有意义的。为此,可以使用doxypypy改进Doxygen和Python之间的集成。
Sphinx:记录Python项目的实际工具。这里有三个选项:手动、半自动(存根生成)和全自动(类似于Doxygen)。
autosummary_generate
还有其他选项需要注意:
doxypy输入过滤器允许您以标准Python docstring格式使用几乎所有Doxygen的格式化标记。我用它来记录一个大型的混合C++和Python游戏应用框架,并且它运行良好。
这里是documented on the doxygen website,但总结一下:
您可以使用doxygen来记录您的Python代码。您可以使用Python文档字符串语法:
在这种情况下,doxygen将提取注释,但您将无法使用任何special doxygen commands。
或您可以(类似于doxygen下的C风格语言)将成员前面第一行的注释标记(
#
)加倍:在这种情况下,可以使用特殊的doxygen命令。没有特定的Python输出模式,但是通过将
OPTMIZE_OUTPUT_JAVA
设置为YES
,可以明显地改善结果。老实说,我对这种区别有点惊讶——似乎一旦doxygen能够检测到blocks或“blocks”中的注释,大部分工作就会完成,而且在这两种情况下都可以使用特殊命令。也许他们希望使用“”的人遵守更多的Pythonic文档实践,这会干扰特殊的doxygen命令?
最后,你只有两个选择:
您可以使用Doxygen生成内容,也可以使用Sphinx*生成内容。
Doxygen:它不是大多数Python项目的首选工具。但是如果你必须处理其他用C或C++写的相关项目,这是有意义的。为此,可以使用doxypypy改进Doxygen和Python之间的集成。
Sphinx:记录Python项目的实际工具。这里有三个选项:手动、半自动(存根生成)和全自动(类似于Doxygen)。
autosummary_generate
配置设置sphinx。您需要使用自动摘要设置页面,然后手动编辑页面。您可以选择,但我的经验是,这种方法需要过多的配置,最后,即使创建了新模板,我也发现了一些错误,无法确定哪些是公开的公共API,哪些不是。我的意见是,这个工具对于需要手动编辑的存根生成是很好的。就像是一个以手动方式结束的捷径。还有其他选项需要注意:
相关问题 更多 >
编程相关推荐