正如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" \
" 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的动态类型,代码可以以任何一种方式运行,但会产生不正确的结果。
使用黑色[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.""",
这些都是很好的答案,但我找不到一个编辑器插件,可以帮助我编辑“隐式连接”的字符串,所以我写了一个包,让我更容易。
在pip(安装段落)上,如果有人想查看这个旧线程的话。以html的方式格式化多行字符串(压缩空格,一个新段落有两个换行符,不用担心行间空格)。
from paragraphs import par
class SuddenDeathError(Exception):
def __init__(self, cause: str) -> None:
self.cause = cause
def __str__(self):
return par(
f""" Y - e - e - e - es, Lord love you! Why should she die of
{self.cause}? She come through diphtheria right enough the year
before. I saw her with my own eyes. Fairly blue with it, she
was. They all thought she was dead; but my father he kept ladling
gin down her throat till she came to so sudden that she bit the bowl
off the spoon.
What call would a woman with that strength in her have to die of
{self.cause}? What become of her new straw hat that should have
come to me? Somebody pinched it; and what I say is, them as pinched
it done her in."""
)
raise SuddenDeathError("influenza")
变得……
__main__.SuddenDeathError: Y - e - e - e - es, Lord love you! Why should she die of influenza? She come through diphtheria right enough the year before. I saw her with my own eyes. Fairly blue with it, she was. They all thought she was dead; but my father he kept ladling gin down her throat till she came to so sudden that she bit the bowl off the spoon.
What call would a woman with that strength in her have to die of influenza? What become of her new straw hat that should have come to me? Somebody pinched it; and what I say is, them as pinched it done her in.
一切都很容易与(Vim)对齐“gq”
我以前用过textwrap.dedent。这有点麻烦,所以我现在更喜欢行延续,但如果你真的想要块缩进,我认为这很好。
示例代码(其中trim是去掉带有切片的第一个'\n'):
import textwrap as tw
x = """\
This is a yet another test.
This is only a test"""
print(tw.dedent(x))
解释:
Dedent根据新行前第一行文本中的空白计算缩进。如果你想调整它,你可以使用re模块轻松地重新实现它。
这种方法有局限性,很长的行可能仍然比你想要的长,在这种情况下,其他方法连接字符串更适合。
反斜杠:
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.")