Sono un po 'confuso sulla differenza tra docstring e commenti in python.Docstrings vs Commenti
Nella mia classe il mio insegnante ha introdotto qualcosa di noto come "ricetta del design", una serie di passaggi che presumibilmente ci aiuteranno a pianificare e organizzare meglio la nostra codifica in Python. Da quello che ho capito, il sotto è un esempio dei passi che seguiamo - questo in modo da chiamare ricetta di progettazione (la roba delle quotazioni):
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)
Per quanto ho capito questo è fondamentalmente un docstring, e nel nostro la versione di una docstring deve includere tre cose: una descrizione, esempi di cosa dovrebbe fare la tua funzione se la inserisci nella shell python e un 'tipo contract', una sezione che mostra quali tipi inserisci e quali tipi funzionano sarà di ritorno.
Ora questo è tutto fatto, ma i nostri compiti ci impongono di avere anche commenti che spiegano la natura delle nostre funzioni, utilizzando il simbolo "#" del token.
Quindi, la mia domanda è, non ho già spiegato cosa farà la mia funzione nella sezione descrizione della docstring? Qual è il punto di aggiungere commenti se essenzialmente dirò al lettore la stessa identica cosa?
Inoltre, a proposito, sto avendo un momento assolutamente orrendo cercando di ottenere questo codice per uscire correttamente una volta nel post effettivo. Mi dispiace per quello Non suppongo che qualcuno potrebbe indicarmi la giusta direzione per formattare correttamente il codice in un post?
ho formattato il codice per voi. Per formattare il codice su StackExchange, basta selezionare il blocco di codice e premere il pulsante '{}' sulla barra degli strumenti (o premere [Cmd] + [K] o [Ctrl] + [K], a seconda della propria piattaforma). – Johnsyweb
Discuterei (contro chi ha impostato i tuoi compiti) che i commenti non riescono ad esprimerti chiaramente nel tuo *** codice ***. [Pulisci codice: un manuale di Agile Software Craftsmanship (Robert C. Martin)] (http://tinyurl.com/CleanCodeBook) è consigliato la lettura sull'argomento. [I test unitari sono una forma di documentazione molto migliore] (http://en.wikipedia.org/wiki/Unit_testing#Documentation), a mio modesto parere. – Johnsyweb
In risposta, direi che il codice spiega * come *, e i commenti spiegano * perché *. E le docstring sono necessarie per costruire la documentazione/ottenere aiuto nell'interprete senza guardare l'implementazione. Ma questo è stato discusso in numerose domande qui a SO, e anche a Programmers.SE. – fjarri