【发布时间】:2016-10-25 16:59:51
【问题描述】:
我正在开发一个 Python 项目,我希望使用一些快捷方式来帮助格式化字符串中的类数据。更具体地说,我希望能够使用类似于'{a}{b}{c}'.format(**vars(self), [strlen, strlen, strlen]) 的东西并指定显示的每个属性的字符串长度。例如:
class Dummy(object):
def __init__(self):
self.value1 = 'A VALUE'
self.value2 = 'ANOTHER VALUE'
self.value3 = 'THIRD VALUE'
def to_s(self):
# want value1 to be 20 chars
# value2 to be 8 chars
# value3 to be 10 chars
# is something similar to this possible
return '{value1},{value2},{value3}'.format(**vars(self), [20, 8, 10])
def to_s2(self):
# or will I have to reference each explicitly and specify the either padding or slicing?
return '{},{},{}'.format(self.value1.ljust(20), self.value2[:8], self.value3[:10])
我知道这是一个很长的目标,但是其中一些类有 30 或 40 个属性,如果可行的话,它会让生活变得更加轻松。
谢谢。
【问题讨论】:
标签: python python-2.7