Domanda

OK, mi rendo conto che le triple virgolette stringhe possono servire come i commenti su più righe. Ad esempio,

"""Hello, I am a 
   multiline comment"""

e

'''Hello, I am a 
   multiline comment'''

Ma tecnicamente parlando questi sono stringhe, giusto?

Googled e letto la guida di stile Python, ma non sono riuscito a trovare una risposta tecnica per il motivo per cui non v'è alcuna implementazione formale della multilinea, / * * / tipo di commenti. Non ho alcun problema con apici tripli, ma io sono un po 'curioso di sapere cosa ha portato a questa decisione di progettazione.

È stato utile?

Soluzione

Non credo si otterrà una risposta migliore di "Guido non si sentiva il bisogno di commenti multi-linea".

tweet su questo:

  

tip Python: È possibile utilizzare stringhe multilinea come commenti multilinea. A meno utilizzato come docstrings, generano nessun codice! : -)

Altri suggerimenti

Commenti multi-linea sono facilmente divisibili. Cosa fare se avete seguito in un programma semplice calcolatrice?

operation = ''
print("Pick an operation:  +-*/")
# Get user input here

Prova a commentare che con un commento su più righe:

/*
operation = ''
print("Pick an operation:  +-*/")
# Get user input here
*/

Ops, la stringa contiene il commento di fine delimitatore.

Triple-testo citato non dovrebbe essere considerato commenti multilinea; per convenzione, sono docstrings . Essi dovrebbero descrivere ciò che il codice fa e come usarlo, ma non per le cose come commentando blocchi di codice.

Secondo Guido, commenti su più righe in Python sono solo contigue commenti a riga singola (cercare "commenti a blocchi").

Per commentare blocchi di codice, a volte uso il seguente schema:

if False:
    # A bunch of code

Questo probabilmente risale al concetto di base che ci dovrebbe essere un modo ovvio per fare un compito. Ulteriori commento stili aggiungono complicazioni inutili e potrebbero diminuire la leggibilità.

Bene, le triple virgolette sono utilizzati come commenti su più righe in docstring. E # commenti sono utilizzati come commenti in linea e la gente ottenere l'uso ad esso.

La maggior parte dei linguaggi di script non hanno commenti su più righe sia. Forse è la causa?

PEP 0008 , sezione Commenti

E vedere se il vostro editor di Python offre alcuni tasti di scelta rapida per il blocco di commento. Emacs supporta, così come Eclipse, presumibilmente la maggior parte dei IDE decente fa.

Lo Zen di Python :

Non ci dovrebbero essere tra-- e, preferibilmente, un solo modo --obvious per farlo.

Personalmente il mio commento stile nel dire Java è come

/*
 * My multi-line comment in Java
 */

Quindi, avendo una sola linea di commento: solo non è una cosa negativa se il vostro stile è tipico per l'esempio precedente, perché in confronto avresti

#
# My multi-line comment in Python
#

VB.NET è anche un linguaggio con una sola riga solo commentare, e personalmente lo trovo fastidioso come commenti finiscono per guardare meno likes Commenti e più come una sorta di citazione

'
' This is a VB.NET example
'

single-line-solo commenti finiscono per avere meno carattere-utilizzo di commenti multi-linea, e hanno meno probabilità di essere sfuggito da alcuni personaggi un po 'incerti in un comunicato regex forse? Mi piacerebbe tendo a concordare con Ned però.

Per commentare un blocco di codice nel PyCharm IDE:

  • Codice | Commento con la linea Commento
  • Windows o Linux: Ctrl + /
  • Mac OS: Comando + /
# This
# is
# a 
# multi-line
# comment

Usa blocco di commento o di ricerca e sostituzione (s / ^ / # / g) nel vostro editor per raggiungere questo obiettivo.

Ho risolto questo scaricando una macro per il mio editor di testo (TextPad) che mi permette di evidenziare le linee e quindi inserisce # alla prima di ogni riga. Una macro simile rimuove le # 's. Alcuni possono chiedere perché multilinea è necessario ma è utile quando si sta cercando di "spegnere" un blocco di codice per il debug.

Perché il # convenzione è un comune, e non c'è davvero nulla si può fare con un commento su più righe che non è possibile con un commento -sign #. Si tratta di un incidente storico, come l'ascendenza dei commenti /* ... */ risalenti al PL / I,

Si supponga che erano solo considerati inutili. Dal momento che è così facile da digitare solo #a comment, commenti su più righe può semplicemente consistere di molti commenti singola linea.

HTML , d'altra parte, c'è più di un bisogno di multiliners. È più difficile continuare a digitare <!--comments like this-->.

Questa è solo una supposizione .. ma

Perché sono stringhe, hanno qualche valore semantico (il compilatore non sbarazzarsi di loro), quindi ha senso per loro di essere utilizzati come docstring. Essi in realtà diventano parte della AST , in modo da estrarre la documentazione diventa più facile.

Inoltre, commenti su più righe sono una cagna . Mi spiace dirlo, ma a prescindere dalla lingua, io non li uso per altro che il debug. Diciamo che avete codice come questo:

void someFunction()
{
    Something
    /*Some comments*/
    Something else
}

Poi si scopre che c'è qualcosa nel codice, non si può risolvere con il debugger, in modo da avviare manualmente il debug commentando chuncks sempre più piccole di codice con theese commenti su più righe. Questo sarebbe poi dare la funzione:

void someFunction()
{ /*
    Something
   /* Comments */
   Something more*/
}

Questa è davvero irritante.

multilinea commenti utilizzando IDLE :

  • Mac OS X , dopo la selezione del codice, commentare un blocco di codice con Ctrl + 3 e rimuovere il commento utilizzando Ctrl + 4 .

  • di Windows , dopo la selezione del codice, commentare un blocco di codice con Ctrl + Alt + 3 e rimuovere il commento utilizzando Ctrl + A + 4 .

Per chiunque altro alla ricerca di commenti multi-linea in Python - utilizzando il formato tripla citazione può avere alcune conseguenze problematiche, come ho appena imparato nel modo più duro. Considerate questo:

this_dict = {
    'name': 'Bob',

"""
This is a multiline comment in the middle of a dictionary
"""

    'species': 'Cat'
}

Il commento multi-linea sarà nascosto nella stringa successiva, rovinare il chiave 'species'. Meglio usare solo # per i commenti.

Mi ricordo di aver letto su un ragazzo che avrebbe messo il suo multi-linea di commento in una variabile tripla citato:

x = '''
This is my
super-long mega-comment.
Wow there are a lot of lines
going on here!
'''

Questo fa prendere un po 'di memoria, ma ti dà commento funzionalità multi-line, e in più la maggior parte degli editori evidenzierà la sintassi per voi:)

E 'anche facile da commentare il codice semplicemente avvolgendolo con

x = '''

e

'''
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top