我的python应用程序是一个预处理器;我的输出是另一个应用程序的输入。另一个应用程序具有各种多行部分标题,这些标题根据版本进行细微更改。我的申请填写了各个部分。
我现在的#34;打印机"定义了几个带有格式替换的多行字符串。 print语句将替换为write:
def generate():
header="""
Multi-line header
Symbols that form a logo
changes with version
"""
anotherSection="""
this section header
is shorter
(
{myFiller}
)
"""
print header
print anotherSection.format(myFiller = "{}{}{}".format(myFiller.content))
print anotherSection2.format(myFiller = [x.strip() for x in myFiller.content2])
print anotherSection3.format(myFiller = myFiller3.content)
" myFiller"是对具有原始数据的类的调用,可能需要根据该部分对其进行格式化。
对于让一堆多行字符串混淆实际"打印"有些事情并不合适。 .format(.format)的东西也可能有点难以阅读。
关于如何构建这个的任何想法?
我一直在玩一个字符串字典,但我不喜欢打印语句界面(不是我在个别印刷语句中出售的:
format_requirements={'header': """.....""",'section':"""...."""}
print format_requirements['header'].format(....)
版本I" m倾向于使用每个部分字符串定义的函数。这对于版本更改很有用,但我不确定它的走法(我主要关注的是将生成函数与其他一些函数混合在一起):
def header(version):
header=""
if version == v1:
header="""...."""
if version ==v2:
header="""..."""
return header
def section(type):
section="""...."""
return section
print header(v1).format(....)
print section
我还玩过课程,迭代列表和其他一些东西。在阅读了风格指南(推动我进入.format()方向)和各种帖子之后,我来到这里寻找更加诡计和易读的东西。
我愿意接受任何指导和方法来构建它。
谢谢!
答案 0 :(得分:0)
我会选择一个将原始输入保存在._data
属性中的类,并且有方法为每个“version”输出格式正确的字符串
class MyStringFormatter(object):
def __init__(header=None, content=None):
self._data = {'header': header, 'content': content}
def version_one(self):
# format strings here
return stringv1