我有更好的Python文档吗?更加结构化?

问题描述 投票:0回答:2

我想这个问题已经被问过,但我没有找到。

我过去曾使用过 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 为例,请参阅有关“格式化字符串语法”的部分,感觉它应该放在专门致力于该主题的其他地方。

所以我的问题是:是否有某个地方 Python API 的结构与 JAVA 中的结构类似?

python
2个回答
7
投票

Python 在标准库中有一个与 Javadoc 几乎等效的内容,称为

pydoc

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

$ 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 的 Web 服务器,您可以单击起始页“内置模块”中的

builtins
链接,然后单击
str
链接查看完全相同的信息,因为
help()
也由 pydoc 提供服务。

还有一个“搜索”和一个“获取”栏。在“获取”栏中输入

str.strip
即可直接到达该位置,就像使用
help(str.strip)
一样。

这是很棒的信息。谢谢。网上有什么地方可以发布这个吗?所以你不必在本地启动服务器?

据我所知,没有。而且似乎没有太多意义

https://docs.python.org 。本地服务器的优点是,它根据您启动它的解释器准确记录系统上安装的内容,即使您安装了多个 Python 版本(或者正在使用安装了不同软件包的 virtualenvs)。即使标准库也可能因操作系统或发行版以及(从源代码编译时)编译时可用的 C 库而异。


1
投票
不确定这是否正是您想要的,但在 python REPL 环境中您可以使用

help

,以获得更多信息:

help help_example

如果您输入具体的方法名称,您可以获得更多信息,即

help(str.format)



help_example2

© www.soinside.com 2019 - 2024. All rights reserved.