Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用Sphinx autodoc记录我的主要功能?_Python_Main_Python Sphinx_Read The Docs_Autodoc - Fatal编程技术网

Python 如何使用Sphinx autodoc记录我的主要功能?

Python 如何使用Sphinx autodoc记录我的主要功能?,python,main,python-sphinx,read-the-docs,autodoc,Python,Main,Python Sphinx,Read The Docs,Autodoc,我在使用Sphinx autodoc构建文档时遇到问题。我的项目由包含类的不同模块组成。正确生成这些模块的文档 但是有一个模块(在我的例子中称为controller.py)包含 用于初始化来自其他模块的对象和启动线程等的代码 由于模块代码在构建文档时由Sphinx执行,因此我在controller.py中添加了以下内容以防止代码运行: if __name__ == '__main__': main() 此外,所有执行的代码都包含在主函数中,如下所示: ''' A. general de

我在使用Sphinx autodoc构建文档时遇到问题。我的项目由包含类的不同模块组成。正确生成这些模块的文档

但是有一个模块(在我的例子中称为controller.py)包含 用于初始化来自其他模块的对象和启动线程等的代码

由于模块代码在构建文档时由Sphinx执行,因此我在controller.py中添加了以下内容以防止代码运行:

if __name__ == '__main__':
    main()
此外,所有执行的代码都包含在主函数中,如下所示:

''' A. general description of controller.py module '''
import mymod1, mymod2, mymod3

    def main():
       ''' B. initializing obj1 '''
       obj1 = mymod1.class1()
       obj2 = mymod2.class2()
       ''' C. doing something '''
       obj2.run()

if __name__ == '__main__':
    main()
问题是controller.py的Sphinx的输出,仅包含外部主功能:

A. general description of controller.py module

controller.main()
我想看到的是注释B和C,这在其他模块中没有问题,因为内部代码包含在一个类中。但在这里,函数中包含的代码被忽略

有没有一种方法可以在不太修改Python代码的情况下获得结果?我希望保持代码和文档之间的依赖关系较低

任何暗示都将不胜感激。谢谢

编辑: 我切换到apidoc,但问题与此类似。我可以在main()中看到我的注释,但在main中没有函数定义的注释。例如:


此外,如果有可能包含源代码而不仅仅是API,那就太好了。看起来您的
main
函数有两个docstring(注意:不是注释)。这是行不通的。只有第一个被认可。每个模块、类或函数只能有一个docstring。函数代码的缩进看起来也很奇怪。函数中定义的函数不是公共API的一部分。代码的用户不能直接调用它。为什么你需要用斯芬克斯来记录它?相关:,关于在文档中包含源代码:查看@mzjn谢谢您的回复。文档的目的是使实现细节可以从几个使用API(GUI框架)的项目中获取。决定GUI行为的主函数在每个项目中都不同,回调函数嵌套在主函数中定义。就像在doxygen中一样,切换到实现将非常好。因此,将有一种方便的方式在更多的开发人员之间共享信息,项目是如何实现的,想法是什么。但也许我必须把信息移到thr.rst文件中
def main():
   ''' This comment is visible '''
   def smallfunction():
      ''' This comment is NOT visible '''