C++ プログラムを生成する Python プログラムを作成しています。次のようなコードのインスタンスがたくさんあります。
class TestBlock(object):
def __init__(self, mod, name, casetype, generator):
self.mod = mod
self.name = name
self.casetype = casetype
self.generator = generator
def fullname(self):
return "{mod}.{name}".format(**self.__dict__)
def write_cases(self, outf):
outf.write("const {casetype} {mod}_{name}[] = {{\n"
.format(**self.__dict__))
for case in self.generator():
outf.write(" { " + case + " },\n")
outf.write("};\n\n")
この"text {subst}".format(**self.__dict__)
構築は、 のインスタンス変数を名前付き置換として使用できるようにする唯一の方法でself
あり、見苦しく、好きではありません。書けるようになりたい"text {subst}".format(self)
です; これは可能ですか?私はそれ"text {0.subst}".format(self)
が箱から出してすぐ"text {subst}".format(**self)
に動作し、いくつかの特別な方法で動作するようにすることができることを認識していますが、それらの両方にはまだ余分な問題があります.