正如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."

编辑经过反思,我同意托德的建议,使用括号而不是行接续更好,因为他给出了所有的理由。我唯一的犹豫是,用括号括起来的字符串和元组比较容易混淆。

其他回答

可用的选项:

反斜杠:"foo" \ "bar" "foo" + " \ "bar" 括号: (“foo”“酒吧”) 带加号的括号:("foo" + "bar") PEP8, E502:括号之间的反斜杠是多余的

避免

避免使用逗号:("foo", "bar")来定义一个元组。


>>> s = "a" \
... "b"
>>> s
'ab'
>>> type(s)
<class 'str'>
>>> s = "a" + \
... "b"
>>> s
'ab'
>>> type(s)
<class 'str'>
>>> s = ("a"
... "b")
>>> type(s)
<class 'str'>
>>> print(s)
ab
>>> s = ("a",
... "b")
>>> type(s)
<class 'tuple'>
>>> s = ("a" + 
... "b")
>>> type(s)
<class 'str'>
>>> print(s)
ab
>>> 

反斜杠:

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.")

使用黑色[https://github.com/psf/black],我像这样格式化它。

   help=f"""filters, lista de filtros para cargar las base de conocimiento.
   Pueden mandarse solo algunos filtros ya que no son obligatorios,
   por ejemplo, si no se manda sts, se cargarán todos las bases de todos los estados.""",

使用\你可以将语句扩展到多行:

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."

parns也可以代替行续符,但可能会有人认为您打算使用元组,而只是忘记了逗号。举个例子:

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.")

使用Python的动态类型,代码可以以任何一种方式运行,但会产生不正确的结果。