我有更好的Python文档吗?更有条理?

时间:2019-07-06 22:14:22

标签: python api documentation

我想这个问题已经被提出了,但是我没有找到。

我过去使用过Java和PHP,我相信它们的语言文档结构会更好。至少是他们的API。

如果您查看Java的API,那就太棒了。结构良好且可预测。它还允许您查找不存在的新内容。我正在考虑这个https://docs.oracle.com/javase/7/docs/api/

PHP的结构不是很好,但是很好用。我说的是:https://www.php.net/manual/en/

现在,如果您看到Python的等效语言(至少我发现的https://docs.python.org/3/index.html),那感觉就像是篇很长的教程。从我的角度来看,寻找东西很困难,而且没有一个真正的分层组织。当您阅读有关函数的内容时,当我真正地寻找摘要时,还会有很多文字描述事物。以https://docs.python.org/3/library/string.html为例,请参阅有关“格式字符串语法”的部分,感觉它应该放在专门针对该主题的其他地方。

所以我的问题是:是否在某个地方以类似于JAVA中所做的方式构造Python API?

2 个答案:

答案 0 :(得分:1)

不确定是否正是您想要的,但是在python REPL环境中,您可以使用 help 来达到目的:

help help_example

如果您输入特定的方法名称,则可以获得更多信息,即 help(str.format)

help_example2

答案 1 :(得分:1)

Python在名为pydoc的标准库中具有几乎与Javadoc等效的语言。

您甚至可以使用以下命令将其作为网络服务器启动

$ python -m pydoc -b

(或者-p 80,如果随机端口给您带来麻烦,请转到http://localhost

这应该打开一个网络浏览器,使您可以浏览标准库以及您刚安装的任何其他软件包。


请注意,您还可以使用help()实用程序从Python的交互式Shell / REPL获取所有这些信息。

>>> help()
  

比方说,您想找到对字符串进行处理的函数,例如,以strip()为例。您将如何使用这两种方法找到此功能?

$ python -m pydoc str

>>> help(str)

将显示str类型的帮助,包括其所有方法。

如果您不知道字符串的类型为str,则可以创建一个字符串并询问其类型:

>>> type("foo")
<class 'str'>
>>> help(type("foo"))

要查看对象属性的更紧凑目录,可以使用

>>> dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

但是由于您已经知道名称为strip(),因此您可以就该对象寻求帮助。

>>> help(str.strip)

这将显示方法签名和文档字符串(如果有)。

使用Pydoc的网络服务器,请单击起始页上“内置模块”中的builtins链接,然后单击str链接以查看完全相同的信息,因为{{1} }也由pydoc提供。

还有一个“搜索”和“获取”栏。就像使用help()一样,在“获取”栏中输入str.strip即可直接进入。

  

这是很好的信息。谢谢。在网上发布此消息的地方吗?这样您不必在本地启动服务器吗?

我不知道。给定https://docs.python.org似乎没有多大意义。本地服务器的优势在于,即使您安装了多个Python版本(或正在使用安装了不同软件包的virtualenvs),它也会根据您启动时所使用的解释程序准确地记录系统中已安装的内容。甚至标准库也会因操作系统或发行版以及(从源代码编译时)基于编译时可用的C库的不同而有所不同。