我有一个很长的查询。我想在 Python 中将它分成几行。在 JavaScript 中实现它的一种方法是使用几个句子并将它们与 +
运算符连接起来(我知道,也许这不是最有效的方法,但我并不真正关心性能这个阶段,只是代码的可读性)。例子:
var long_string = 'some text not important. just garbage to' +
'illustrate my example';
我尝试在 Python 中做类似的事情,但它没有用,所以我使用 \
来拆分长字符串。但是,我不确定这是否是唯一/最好/最pythonicest 的方式。看起来很尴尬。实际代码:
query = 'SELECT action.descr as "action", '\
'role.id as role_id,'\
'role.descr as role'\
'FROM '\
'public.role_action_def,'\
'public.role,'\
'public.record_def, '\
'public.action'\
'WHERE role.id = role_action_def.role_id AND'\
'record_def.id = role_action_def.def_id AND'\
'action.id = role_action_def.action_id AND'\
'role_action_def.account_id = ' + account_id + ' AND'\
'record_def.account_id=' + account_id + ' AND'\
'def_id=' + def_id
原文由 Pablo Mescher 发布,翻译遵循 CC BY-SA 4.0 许可协议
你在谈论多行字符串吗?很简单,使用三重引号来开始和结束它们。
您也可以使用单引号(其中 3 个当然在开头和结尾)并像处理任何其他字符串一样处理生成的字符串
s
。注意:与任何字符串一样,起始引号和结束引号之间的任何内容都成为字符串的一部分,因此此示例有一个前导空白(正如@root45 所指出的)。该字符串还将包含空格和换行符。
IE,:
最后,还可以像这样在 Python 中构造长行:
这将 不 包括任何额外的空格或换行符(这是一个故意的例子,显示跳过空格的结果):
不需要逗号,只需将要连接的字符串放在一对括号中,并确保考虑到任何需要的空格和换行符。