首页 > 解决方案 > 禁用 Python 跨行自动连接字符串

问题描述

我正在创建一长串这样的字符串:

tlds = [
  'com',
  'net',
  'org'
  'edu',
  'gov',
...
]

后面漏了一个逗号'org'。Python 自动将其与下一行中的字符串连接到'orgedu'. 这成为一个很难识别的错误。

已经有很多方法可以定义多行字符串,其中一些非常明确。所以我想知道有没有办法禁用这种特殊行为?

标签: python

解决方案


柏拉图式的正确做法是修改 linter。但我认为生命太短暂了,而且如果下一个程序员不知道你修改过的 linter,他/她的生活将是一个活生生的地狱。

确保输入(即使是硬编码)是有效的也不应该感到羞耻。如果适合我,我会像这样实施手动解决方法:

tlds = [
  'com',
  'net',
  'org'
  'edu',
  'gov',
]

redone = ''.join(tlds)
chunk_size = 3
tlds = [ redone[i:i+chunk_size] for i in range(0, len(redone), chunk_size) ]

# Now you have a nice `tlds`
print(tlds)

你可以忘记逗号,在同一行写两个元素,甚至在同一个字符串中写你想要的。chunk_size您也可以邀请粗心的代码协作来弄乱它,如果您的应用程序没问题的话,文本将在稍后三个()重做。

编辑:稍后到@Jasmijn 的注释,我认为如果我们有动态大小的条目,我们可以使用这样的文字输入:

tlds = ['''com
net
org
edu
gov
nl
co.uk''']

# This way every line is an entry by its own as seen directly without any quotations or decorations except for the first and last inputs.
tlds = '\n'.split(tlds)

推荐阅读