Где я могу найти определения методов для классов в Python? - PullRequest
0 голосов
/ 03 февраля 2019

В Java, если вы ищете класс, вы обычно можете найти все доступные методы, которые предоставляются из класса.Он сообщает вам параметры и тип возвращаемого значения.Тем не менее, в Python я не смог найти ничего подобного.У официального docs.python.org есть примеры использования некоторых методов, но иногда они, кажется, не упоминают точно, какие аргументы он принимает и каков тип возвращаемого значения.

Например, когда я смотрел на объект counter, я не смог точно определить, что делает метод keys() и что он возвращает.Точно так же я видел другое использование класса counter с get, но я также не смог найти это на этом сайте.

У кого-нибудь есть предложения к документации, которая очень похожа на Java?Или, если нет, лучший способ выяснить, что каждый метод делает в Python.

Ответы [ 3 ]

0 голосов
/ 03 февраля 2019

В большинстве случаев docs.python.org довольно хорошо справляется с документированием исходных кодов.

Что касается класса Counter, то первое предложение в документации гласит:

A Counter - это подкласс dict для подсчета хеш-объектов.

Таким образом, теперь вы знаете, что Counter наследует все методы dict.(get(), keys(), pop() и т. Д.)

Если по какой-то причине docs.python.org не удалось документировать какой-либо источник, вы можете использовать help(obj)в интерактивном режиме.Или вы можете распечатать строку документации через print(obj.__doc__).Замените obj на любой объект, функцию или метод.

0 голосов
/ 03 февраля 2019

Мы можем использовать любой из приведенных ниже кодов, чтобы получить необходимые данные.

from collections import Counter
help(Counter)
from collections import Counter
Counter.__doc__
0 голосов
/ 03 февраля 2019

В Python есть нечто, называемое «строка документации», аналогичное Javadoc.Большинство методов написаны с использованием строк документации (по крайней мере, стандартная библиотека довольно хороша в этом), и большинство IDE автоматически покажет вам строку документации для любого данного метода, на который вы собираетесь ссылаться, так же, как они показали бы вамJavadoc.Строка документации выглядит следующим образом:

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

Вы также можете использовать help() в классе, который покажетстрока документации класса и строки документации для каждого метода в классе:

>>> help(collections.Counter)

или для экземпляра, который будет показывать более или менее ту же информацию:

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

В вашем конкретном случае, Counter является подклассом встроенного dict, который может объяснять отсутствие явной документации по методам, которые они используют.dict.get(key), например, возвращает значение для данного ключа, поэтому я предполагаю, что Counter.get(key) вернет что-то похожее.


Если просмотр строки документации не поможет вам разобратьсяВаша проблема, не бойтесь просто открыть терминал и поэкспериментировать с входами и выходами!

...