Где pydoc Python помогает функционировать, получают его содержание?

1) Для нормального старого стиля маленькие циклы - меня, j, k - при необходимости больше чем в 3 вложенных циклах уровня это означает, что любой алгоритм очень конкретен и сложен, любой, которого необходимо рассмотреть рефакторингом кода.

Пример Java:

for(int i = 0; i < ElementsList.size(); i++) {
  Element element = ElementsList.get(i);
  someProcessing(element);
  ....
}

2) Для модернизированных циклов Java как for(Element element: ElementsList) лучше использовать нормальное имя meanigful

Пример Java:

for(Element element: ElementsList) {
  someProcessing(element);
  ....
}

3), Если возможно с языком, что Вы используете, преобразовываете цикл для использования итератора

Пример Итератора Java: щелкают здесь

10
задан the Tin Man 20 April 2016 в 21:23
поделиться

2 ответа

Функция help (реализованная в модуле pydoc ) не подготовлена ​​для поиска строк документации для каждого экземпляра. Я быстро просмотрел модуль, чтобы увидеть, есть ли способ предоставить явную помощь, но, похоже, его нет. Он использует модуль inspect , чтобы определить, что это за вещь, и ваш myFunc не выглядит как функция, он выглядит как экземпляр. Таким образом, pydoc вместо этого печатает справку о классе экземпляра.

Было бы неплохо, если бы, аналогично __ doc __ , вы могли добавить атрибут __ help __ , но для этого нет поддержки.

Не решаюсь предлагать это, но лучше всего определить новую функцию help :

old_help = help
def help(thing):
    if hasattr(thing, '__help__'):
        print thing.__help__
    else:
        old_help(thing)

, а затем добавить атрибут __ help __ в свои экземпляры:

class myCallable:
    def __init__(self, doc):
        self.__doc__ = doc
        self.__help__ = doc
5
ответ дан 4 December 2019 в 02:50
поделиться

Я не очень понимаю, в чем конкретно заключается ваш вопрос. Насколько я понимаю, у вас есть класс и функция, определенные в нем, и вы хотите знать, откуда Python получает текст справки для этой функции.

Python получает текст справки из строк документации, представленных в этом классе / методе.

Если у вас есть класс «A» и метод «f» в этом классе, а в функции «f» есть строки документации, то следующий дамп терминала должен помочь прояснить ваш вопрос:

>>> class A:
        def __init__(self):
            self.c = 0   # some class variable
        def f(self, x):
            """this is the documentation/help text for the function "f" """
            return x+1

>>> help(A.f)
Help on method f in module __main__:

f(self, x) unbound __main__.A method
this is the documentation/help text for the function "f" 

>>> A.f.__doc__
'this is the documentation/help text for the function "f" '

Надеюсь, это поможет

2
ответ дан 4 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: