Очень длинный оператор If в Python [дубликат]



этот вопрос уже есть ответ здесь:



У меня есть очень длинный оператор if в Python. Каков наилучший способ разбить его на несколько строк? Под лучшим я подразумеваю наиболее читаемый / общий.

314   2  

2 ответов:

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

В дополнение к этому, если вы используете проверку стиля кода, такую как pycodestyle, следующая логическая строка должна иметь другой отступ для вашего блока кода.

например:

if (abcdefghijklmnopqrstuvwxyz > some_other_long_identifier and
        here_is_another_long_identifier != and_finally_another_long_name):
    # ... your code here ...
    pass

вот пример непосредственно из PEP 8 на предельной длине линии:

class Rectangle(Blob):

    def __init__(self, width, height,
                 color='black', emphasis=None, highlight=0):
        if (width == 0 and height == 0 and
                color == 'red' and emphasis == 'strong' or
                highlight > 100):
            raise ValueError("sorry, you lose")
        if width == 0 and height == 0 and (color == 'red' or
                                           emphasis is None):
            raise ValueError("I don't think so -- values are %s, %s" %
                             (width, height))
        Blob.__init__(self, width, height,
                      color, emphasis, highlight)

Comments

    Ничего не найдено.