2014-04-07 20 views
7

Voglio avere un multi-linea di if un'istruzione del tipo:Come commentare ogni condizione in una istruzione multilinea se?

if CONDITION1 or\ 
    CONDITION2 or\ 
    CONDITION3: 

voglio commentare la fine di ogni riga di codice sorgente

if CONDITION1 or\ #condition1 is really cool 
    CONDITION2 or\ #be careful of condition2! 
    CONDITION3: #see document A sec. B for info 

sto prohibted dal fare questo perché pitone vede tutto come una riga di codice e report SyntaxError: unexpected character after line continuation character.

Come devo fare per implementare e documentare una dichiarazione lunga, su più righe?

+0

correlato: [? Come posso fare un'interruzione di linea (linea continua) in Python] (http://stackoverflow.com/q/53162/4279) – jfs

risposta

13

Non utilizzare \, uso parentesi:

if (CONDITION1 or 
    CONDITION2 or 
    CONDITION3): 

e si possono aggiungere commenti a volontà:

if (CONDITION1 or # condition1 is really cool 
    CONDITION2 or # be careful of conditon2! 
    CONDITION3): # see document A sec. B for info 

Python permette ritorni a capo in un'espressione parentesi, e quando si utilizza commenti che Newline è visto come situato appena prima dell'inizio del commento, per quanto riguarda l'espressione.

Demo:

>>> CONDITION1 = CONDITION2 = CONDITION3 = True 
>>> if (CONDITION1 or # condition1 is really cool 
...  CONDITION2 or # be careful of conditon2! 
...  CONDITION3): # see document A sec. B for info 
...  print('Yeah!') 
... 
Yeah!