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