11

这可能有一个简单的答案,只是不知道如何从我的搜索中梳理出来。

我在我的 python 代码中遵守PEP8,我目前正在使用 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)

肯定有更好的办法?

4

3 回答 3

28

使用自动字符串连接+隐式续行

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


>>> long_string
'Line 1 Line 2 Line 3 '
于 2009-08-19T20:13:19.010 回答
3

这有效:

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(因此,当字符串中有 a 时,以及需要对源代码进行自动换行时,我会开始一个新行。)

于 2009-08-19T20:13:40.977 回答
1

试试这个:

if __name__=='__main__':
    usage = '%prog [options]\nWithout any options, will display 10 random ' \
    'users of each type.'
    parser = OptionParser(usage)
于 2009-08-19T20:13:04.143 回答