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: щелкают здесь
Функция 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
Я не очень понимаю, в чем конкретно заключается ваш вопрос. Насколько я понимаю, у вас есть класс и функция, определенные в нем, и вы хотите знать, откуда 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" '
Надеюсь, это поможет