Pep8 и многострочные условия

Мне пришлось добавить посторонние парены в какое-то время, чтобы избежать жалоб на pep8:

while not found and not something and \
    (time_left is None or time_left > 0):
    (one, two, three, four) = self.gimme(timeout=time_left)

Мое решение:

while (not found and not something and
       (time_left is None or time_left > 0)):
    (one, two, three, four) = self.gimme(timeout=time_left)

Если я изменил отступ во 2-й строке, он жаловался на слишком большой или отсутствующий отступ для каждого отступа, даже с W в то время, до 8 справа от него.

Меня беспокоит, что добавление посторонних паренов для удовлетворения pep8, для небольшого улучшения читабельности, идет вразрез с общими принципами.

Есть идеи? Я пропустил лучшее решение?

2 ответа

Я предпочитаю разбивать длинные строки после условных операторов для повышения читабельности. например:

while (
    not found and 
    not something and 
    (time_left is None or time_left > 9)
):
    (one, two, three, four) = self.gimme(timeout=time_left)

Я думаю, что это очень удобно для чтения и, по крайней мере, удовлетворяет моей проверке стиля кода pep8.

Я думаю, что лучшее решение - это делать все, что вы (и ваша команда, если применимо) считаете наиболее читаемым решением. PEP8 - это просто руководство, это не требование. Сосредоточьтесь на написании кода, который является надежным и простым для понимания.

Другие вопросы по тегам