2014-11-18 8 views
0

У меня есть этот блок кода Я хочу прокомментировать, но встроенные комментарии не работают. Я не уверен, что здесь применяется PEP8. Совет?Комментарий с продолжением строки

 if next_qi < qi + lcs_len \ # If the next qLCS overlaps 
     and next_ri < ri + lcs_len \ # If the next rLCS start overlaps 
     and next_ri + lcs_len > ri: # If the next rLCS end overlaps 
      del candidate_lcs[qi] # Delete dupilicate LCS. 

ответ

6

В Python, ничего не может прийти после символа продолжения \ линии.

Однако, вы можете делать то, что вы хотите, если вы кладете условие в скобках:

if (next_qi < qi + lcs_len # If the next qLCS overlaps 
and next_ri < ri + lcs_len # If the next rLCS start overlaps 
and next_ri + lcs_len > ri): # If the next rLCS end overlaps 
    del candidate_lcs[qi] # Delete dupilicate LCS. 

Ниже демонстрация:

>>> if (1 == 1 # cond 1 
... and 2 == 2 # cond 2 
... and 3 == 3): # cond 3 
...  print True 
... 
True 
>>> 

relevant PEP 8 guideline является:

предпочтительным способом обертывания длинных строк является использование продолженного продолжения строки Python в круглых скобках, скобках и фигурных скобках. Длинные строки могут быть разбиты на несколько строк, обертывая выражения в круглых скобках. Они должны использоваться вместо использования обратной косой черты для продолжения строки.

+0

Спасибо за ссылки на PEP8. Он не описывает добавление комментариев в продолжение строк, поэтому я ценю демонстрацию. – 12345678910111213

1

Часто упускается из виду способ иметь дело с очень длинными линиями, чтобы разбить их на более, более короткие строки:

q_overlaps = next_qi < qi + lcs_len   # If the next qLCS overlaps 
r_start_overlaps = next_ri < ri + lcs_len # If the next rLCS start overlaps 
r_end_overlaps = next_ri + lcs_len > ri  # If the next rLCS end overlaps 
if q_overlaps and r_start_overlaps and r_end_overlaps: 
    del candidate_lcs[qi] # Delete dupilicate LCS. 
Смежные вопросы