我知道在Python中,要将字符串对齐在一定宽度内,可以使用格式字符串。例如,以下代码打印中心字符串'Readability counts',宽度为30个空格:
print "{0: ^30}".format("Readability counts")
现在我想将字符串“2 + 4”居中,但我想用同一个对象的两个属性(obj.atr1
和obj.atr2
)构建它。
我可以先将两个值组合起来形成一个字符串(使用连接或格式化)然后将其传递给下一个格式字符串,但我想知道是否有更优雅的方法来处理这个问题。最好,我只使用一个格式操作,因为这样我就可以将obj
作为参数传递,并使用格式字符串获取属性。以下内容......
print "{0.atr1} + {0.atr2}".format(obj)
..但随后加入了居中。
当我做这样的事情时,我知道它有效..
print "{0: ^30}".format("{0.atr1} + {0.atr2}".format(obj))
..如果我想在最左边的格式字符串中使用obj
的其他属性,那就太不方便了。
答案 0 :(得分:0)
您的最后一种方法似乎很明智,您仍然可以使用其他obj
属性再次传递它:
print "{0: ^30} | {1.atr3}".format("{0.atr1} + {0.atr2}".format(obj), obj)