将Python字符串插值拆分为多行

时间:2017-08-18 18:59:40

标签: python pep8

我有一个日志声明,如:

get_logger().info(
    'Logger logging %s because we need to log it.' % response['foo']['bar']
)

随着缩进,它出现了超过80行。如果我可以将它拆分为%,那就没关系了。

如何将其拆分为多行。 (理想情况下,不仅仅将response['foo']['bar']放入变量中)

3 个答案:

答案 0 :(得分:1)

get_logger().info(
    'Logger logging %s because we need to log it.' 
    % response['foo']['bar']
)

答案 1 :(得分:0)

使用Python字符串格式化功能时,您可以提供tuple而不仅仅是单个值作为输入:

>>> "%d %d %d" % tuple(range(3)) # or just (0, 1, 2)
'0 1 2'

然后轻松将输入元组拆分为多行。此外,您甚至可以将带有百分比后缀占位符的模板字符串分配给变量,稍后再使用它。一个例子是:

>>> template = "The averaged temperatures of the last three days were %d, %d and %d"
>>> template % (22, 26, 23)
'The averaged temperatures of the last three days were 22, 26 and 23'

您可以在printf-style String Formatting(Python 3.5.4)中了解有关Python字符串格式的更多信息。

答案 2 :(得分:0)

值得注意的是,对于日志记录,

w

与:

相同
get_logger().info(
    'Logger logging %s because we need to log it.' 
    % response['foo']['bar']
)

get_logger().info( 'Logger logging %s because we need to log it.', response['foo']['bar'] ) debug()等。方法将info()解释为用于字符串格式化消息。

https://docs.python.org/2/library/logging.html#logging.Logger.debug

一般来说,对于长字符串,应该绕过第80列,使用括号,利用python的内置字符串连接:

*args