Я немного смущен различием между docstrings и комментариями на python.Docstrings vs Комментарии
В моем классе мой учитель представил что-то, известное как «рецепт дизайна», набор шагов, который предположительно поможет нам обучить студентов и организовать наше кодирование лучше на Python. Из того, что я понимаю, ниже приведен пример шагов, которым мы следуем - это так назвать дизайн рецепт (вещи в цитатах):
def term_work_mark(a0_mark, a1_mark, a2_mark, ex_mark, midterm_mark):
''' (float, float, float, float, float) -> float
Takes your marks on a0_mark, a1_mark, a2_mark, ex_mark and midterm_mark,
calculates their respective weight contributions and sums these
contributions to deliver your overall term mark out of a maximum of 55 (This
is because the exam mark is not taken account of in this function)
>>>term_work_mark(5, 5, 5, 5, 5)
11.8
>>>term_work_mark(0, 0, 0, 0, 0)
0.0
'''
a0_component = contribution(a0_mark, a0_max_mark, a0_weight)
a1_component = contribution(a1_mark, a1_max_mark, a1_weight)
a2_component = contribution(a2_mark, a2_max_mark, a2_weight)
ex_component = contribution(ex_mark, exercises_max_mark,exercises_weight)
mid_component = contribution(midterm_mark, midterm_max_mark, midterm_weight)
return (a0_component + a1_component + a2_component + ex_component +
mid_component)
Насколько я понимаю, это в основном строку документации, и в нашем версия docstring должна включать три вещи: описание, примеры того, что должна делать ваша функция, если вы введете ее в оболочку python и «контракт типа», раздел, который показывает вам, какие типы вы вводите, и какие типы функции вернется.
Теперь все это хорошо, но наши задания требуют от нас также комментариев, которые объясняют природу наших функций, используя символ «#».
Итак, мой вопрос: не я уже объяснил, что моя функция будет делать в разделе описания документа docstring? Какой смысл добавлять комментарии, если я по существу расскажу читателю то же самое?
Кроме того, на стороне записки, у меня есть абсолютно ужасное время, пытаясь заставить этот код правильно выходить один раз в фактический пост. Извини за это. Я не предполагал, что кто-то может указать мне в правильном направлении правильно форматировать код в сообщении?
Я отформатированный код для вас. Чтобы форматировать код на StackExchange, просто выберите блок кода и нажмите кнопку ''} на панели инструментов (или нажмите [Cmd] + [K] или [Ctrl] + [K], в зависимости от вашей платформы. – Johnsyweb
Я бы возражал (против того, кто задал ваши задания), что комментарии - это неспособность четко выразить себя в *** коде ***. [Чистый код: руководство по гибкому программному мастерству (Robert C. Martin)] (http://tinyurl.com/CleanCodeBook) рекомендуется прочитать по этому вопросу. [Единичные тесты - гораздо лучшая форма документации] (http://en.wikipedia.org/wiki/Unit_testing#Documentation), по моему скромному мнению. – Johnsyweb
В ответ я бы сказал, что код объясняет * как *, а комментарии объясняют * почему *. И docstrings необходимы для создания документации/получения помощи в интерпретаторе, не глядя на реализацию. Но это обсуждалось в многочисленных вопросах здесь, в SO, а также на Programmers.SE. – fjarri