我如何在Python中包装长行而不牺牲缩进?
例如:
def fun():
print '{0} Here is a really long sentence with {1}'.format(3, 5)
假设这超过了79个字符的推荐限制。我阅读它的方式,这里是如何缩进它:
def fun():
print '{0} Here is a really long \
sentence with {1}'.format(3, 5)
但是,使用这种方法,连续行的缩进与fun()的缩进匹配。这看起来有点丑。如果有人要检查我的代码,由于这个print语句,不均匀的缩进看起来会很糟糕。
如何在不牺牲代码可读性的情况下有效地缩进行呢?
我可能会将长语句拆分为多个更短的语句,以便程序逻辑与长字符串的定义分离:
>>> def fun():
... format_string = '{0} Here is a really long ' \
... 'sentence with {1}'
... print format_string.format(3, 5)
如果字符串太长了,你选择了一个短的变量名,那么这样做你甚至可以避免拆分字符串:
>>> def fun():
... s = '{0} Here is a really long sentence with {1}'
... print s.format(3, 5)
我很惊讶上面没有人提到隐式风格。我的偏好是使用paren来包装字符串,同时在视觉上对齐字符串行。就我个人而言,我认为这看起来比在一个带标签的新行上开始字符串的开头更干净,更紧凑。
注意,这些paren不是方法调用的一部分——它们只是隐式的字符串字面值连接。
Python 2:
def fun():
print ('{0} Here is a really '
'long sentence with {1}').format(3, 5)
Python 3(带有打印函数的parens):
def fun():
print(('{0} Here is a really '
'long sentence with {1}').format(3, 5))
就我个人而言,我认为将连接长字符串文字与打印它分开是最干净的:
def fun():
s = ('{0} Here is a really '
'long sentence with {1}').format(3, 5)
print(s)