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

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

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

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

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.
Другие вопросы по тегам