我在哪里可以找到 python 中 类 的方法定义?

Where can I find method definitions for classes in python?

在 java 中,如果您搜索 class,通常可以找到 class 提供的所有可用方法。它告诉您参数和 return 类型。但是,在 python 中,我找不到类似的东西。官方 docs.python.org 有一些方法使用的例子,但他们有时似乎没有确切提到它接受的参数是什么以及 return 类型是什么。

例如,当我查看 counter 对象时,我无法准确找到 keys() 方法的作用以及它 return 的作用。同样,我看到了计数器 class 和 get 的另一种用法,但我也无法在该网站上找到它。

有没有人对与 Java 非常相似的文档有任何建议?或者,如果不是,找出每个方法在 python 中的作用的最佳方法。

Python 有一个叫做 "docstring" 的东西,类似于 Javadoc。大多数方法都是用文档字符串编写的(至少标准库在这方面做得很好),并且大多数 IDE 会自动向您显示您将要引用的任何给定方法的文档字符串,就像它们向您显示java文档。文档字符串如下所示:

def my_method(some_params):
    '''
    docstring goes here, within the triple-quotes
    '''

当您在 python 终端上时,您可以通过执行

直接查看给定方法的文档字符串
>>> help(my_method)

您也可以导入一个包并查看特定方法:

>>> import collections
>>> help(collections.Counter.keys)

这会向您显示以下内容:

keys(...)
    D.keys() -> a set-like object providing a view on D's keys

您还可以在 class 上使用 help(),这将显示 class 的文档字符串和 class 中每个方法的文档字符串:

>>> help(collections.Counter)

或者在一个实例上,它会显示或多或少相同的信息:

>>> x = collections.Counter()
>>> help(x)

在您的特定情况下,Counter 是内置 dict 的子 class,这可能是缺少有关它们共享方法的明确文档的原因。 dict.get(key),例如,return 是给定键的值,所以我假设 Counter.get(key) 会 return 类似的东西。


如果查看文档字符串并不能真正帮助您找出问题,请不要害怕打开终端并试验输入和输出!

我们可以使用以下任一代码来获取所需的详细信息。

from collections import Counter
help(Counter)
from collections import Counter
Counter.__doc__