python - 如何编写符合 PEP8 的超长字符串并防止 E501

标签 python string pep8

由于 PEP8 建议将您的 python 程序的列规则保持在 80 列以下,我如何才能遵守长字符串的规定,即

s = "this is my really, really, really, really, really, really, really long string that I'd like to shorten."

我将如何将其扩展到以下行,即

s = "this is my really, really, really, really, really, really" + 
    "really long string that I'd like to shorten."

最佳答案

由于相邻的字符串常量是自动连接的,你可以这样编码:

s = ("this is my really, really, really, really, really, really, "  
     "really long string that I'd like to shorten.")

注意没有加号,我在您的示例格式后面添加了额外的逗号和空格。

就我个人而言,我不喜欢反斜杠,我记得在某处读到它实际上已被弃用,而是支持这种更明确的形式。记住“显式优于隐式。”

我认为反斜杠不太清晰,也不太有用,因为它实际上是在转义换行符。如果有必要的话,不可能在它后面加上行尾注释。可以使用连接的字符串常量来做到这一点:

s = ("this is my really, really, really, really, really, really, " # comments ok
     "really long string that I'd like to shorten.")

我使用 Google 搜索“python line length”,它返回 PEP8 链接作为第一个结果,但也链接到另一个关于此主题的好 StackOverflow 帖子:“Why should Python PEP-8 specify a maximum line length of 79 characters?

另一个很好的搜索短语是“python line continuation”。

关于python - 如何编写符合 PEP8 的超长字符串并防止 E501,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1874592/

相关文章:

python - 如何让我的 Python 代码保持在每行 80 个字符以下?

python - 使用 formatprg=autopep8 时如何设置正确的缩进?

python - python中列表推导或生成器表达式的续行

python - PCA 与 sklearn。无法使用 PCA 找出特征选择

ios - 如果字符串为 nil,则设置 NSNull()

python - 转换字符串日期,不能用零填充

python - 在任意索引处有效地划分字符串

python - Tensorflow "know"何时不将数据放入 GPU?

python : Extend a copy of a list - Bug?

python - 蛋白质数据库的 SQL 表