自动将字符串连接重构为字符串替换?

时间:2017-01-03 17:33:17

标签: python python-2.7

我遇到了一个非常难看的代码,它是一个代码生成器,它接受一个配置文件并输出C代码。 它有效,但脚本充满了以下内容:

outstr = "if(" + mytype + " == " + otherType + "){\n"
outstr += "    call_" + fun_for_type(mytype) + "();\n"
outstr += "}\n"
# Now imagine 1000 times more lines like the previous ones...

是否有工具可以自动将代码更改为更适合的代码(部分更改非常受欢迎)?像:

outstr = """if ({type} == {otherType}) {
    call_{fun_for_type}({type});
}
""".format(type=mytype, otherType=otherType, fun_for_type=(mytype))

如果这是C,那么我会滥用Coccinelle,但我不知道Python的类似工具。

由于

1 个答案:

答案 0 :(得分:-2)

您可以使用词典:

datas = {"type":mytype, "otherType":otherType, "fun_for_type":(mytype)}
outstr = "if ({type} == {otherType}) {{\n\
          call_{fun_for_type}({type});\n\
          }}\n".format(**datas)