Python PEP8:打印不缩进的换行字符串

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.

“random” 后面那个空格让我很不爽。我可以这样做:

 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

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时,我会开始一个新行,同时在需要自动换行源代码时也会开始一个新行。


1

试试这个:

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

斜杠不是必须的,用于合并引号。 - bobpaul
嗯,但可能会使它更明显。我自己不会省略它。 - Peter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接