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

2024-10-02 18:14:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想这个问题已经问过了,但我没有找到。你知道吗

我过去曾使用过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为例,请参阅关于“格式化字符串语法”的部分,它认为应该转到专门用于该主题的其他地方。你知道吗

所以我的问题是:pythonapi是否在某个地方以一种与JAVA类似的方式构建?


Tags: 文档httpsorgcomapi语言docshtml
2条回答

不确定它是否正是您想要的,但是在python REPL环境中,您可以使用help来获得更切题的东西:

helphelp_example

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

help_example2

Python在标准库中有一个类似于Javadoc的库,称为pydoc。你知道吗

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

$ python -m pydoc -b

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

这将打开一个web浏览器,允许您浏览标准库以及您碰巧安装的任何其他软件包。你知道吗


注意,还可以使用help()实用程序从Python的交互式shell/REPL获取所有这些信息。你知道吗

>>> help()

let's say you wanted to find functions to do stuff on strings, as an example let's say strip(). How would you find this function using either method?

$ 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)

这将显示方法签名和docstring(如果有的话)。你知道吗

使用Pydoc的web服务器,您可以单击起始页上“内置模块”中的builtins链接,然后单击str链接查看完全相同的信息,因为help()也由Pydoc提供服务。你知道吗

还有“搜索”和“获取”栏。在“Get”栏中输入str.strip可以直接找到它,就像使用help(str.strip)一样。你知道吗

This is great info. Thanks. Is there somewhere where this is posted online? So you don't have to start a server locally?

据我所知不是。似乎也没有什么意义。本地服务器的优点是,它根据启动它时使用的解释器,准确地记录系统上安装的内容,即使您安装了多个Python版本(或者使用安装了不同软件包的virtualenvs)。即使是标准库也可能因操作系统或发行版以及(从源代码编译时)编译时可用的C库而异。你知道吗

相关问题 更多 >