Комментирование с продолжением строки

У меня есть этот блок кода, который я хочу прокомментировать, но встроенные комментарии не работают. Я не уверен, что здесь применимо руководство 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.

person 12345678910111213    schedule 18.11.2014    source источник


Ответы (2)


В 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
>>>

соответствующее руководство PEP 8:

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

person Community    schedule 18.11.2014
comment
Спасибо за ссылку на PEP8. Он не описывает добавление комментариев к продолжающимся строкам, поэтому я ценю демонстрацию. - person 12345678910111213; 18.11.2014

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

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.
person Ned Batchelder    schedule 18.11.2014