Python PEP8 печатает обернутые строки без отступа - PullRequest
11 голосов
/ 20 августа 2009

Вероятно, есть простой ответ на этот вопрос, но я не уверен, как его выявить из моих поисков.

Я придерживаюсь PEP8 в своем коде Python, и в настоящее время я использую OptionParser для сценария, который я пишу. Чтобы строки не выходили за пределы 80, я использую обратную косую черту, где это необходимо.

Например:

if __name__=='__main__':
    usage = '%prog [options]\nWithout any options, will display 10 random \
    users of each type.'
    parser = OptionParser(usage)

Этот отступ после обратной косой черты приводит к:

~$ ./er_usersearch -h
Usage: er_usersearch [options]
Without any options, will display 10 random     users of each type.

Этот разрыв после "случайного" вызывает у меня проблемы. Я мог бы сделать:

 if __name__=='__main__':
    usage = '%prog [options]\nWithout any options, will display 10 random \
 users of each type.'
    parser = OptionParser(usage)

Но это меня так же беспокоит. Это кажется глупым:

 if __name__=='__main__':
    usage = ''.join(['%prog [options]\nWithout any options, will display',
                     ' 10 random users of each type.'])
    parser = OptionParser(usage)

Должен быть лучший способ?

Ответы [ 3 ]

28 голосов
/ 20 августа 2009

Использовать автоматическое объединение строк + неявное продолжение строки :

long_string = ("Line 1 "
               "Line 2 "
               "Line 3 ")


>>> long_string
'Line 1 Line 2 Line 3 '
3 голосов
/ 20 августа 2009

Это работает:

if __name__=='__main__':
    usage = ('%prog [options]\nWithout any options, will display 10 random '
    'users of each type.')
    parser = OptionParser(usage)

Хотя я бы выложил это так:

if __name__=='__main__':
    usage = ('%prog [options]\n'
             'Without any options, will display 10 random users '
             'of each type.')
    parser = OptionParser(usage)

(поэтому я начинаю новую строку, когда в строке есть \n, а также когда мне нужно обернуть слова в исходный код.)

1 голос
/ 20 августа 2009

попробуйте это:

if __name__=='__main__':
    usage = '%prog [options]\nWithout any options, will display 10 random ' \
    'users of each type.'
    parser = OptionParser(usage)
...