【发布时间】:2014-05-08 22:11:11
【问题描述】:
我知道在 Python 中,要在一定宽度内对齐字符串,可以使用格式字符串。例如,以下代码以 30 个空格宽打印居中的字符串“Readability counts”:
print "{0: ^30}".format("Readability counts")
现在我想将字符串“2 + 4”居中,但我想用同一对象的两个属性(obj.atr1 和 obj.atr2)构建它。
我可以首先将这两个值组合成一个字符串(使用连接或格式化),然后将该字符串传递给下一个格式字符串,但我想知道是否有更优雅的方法来处理这个问题。最好只使用 one 格式操作,因为这将允许我将 obj 作为参数传递并使用格式字符串获取属性。类似于以下内容..
print "{0.atr1} + {0.atr2}".format(obj)
.. 但随后添加了居中。
我知道当我做这样的事情时它会起作用..
print "{0: ^30}".format("{0.atr1} + {0.atr2}".format(obj))
.. 但如果我想在最左边的格式字符串中使用 obj 的其他属性,那将非常不方便。
【问题讨论】: