私は現在、個々のタグオブジェクトを作成することですべてのhtmlを生成するレガシーPythonアプリケーションをサポートしています。
親のTAGクラスがあります
class TAG(object):
def __init__(self, tag="TAG", contents=None, **attributes):
self.tag = tag
self.contents = contents
self.attributes = attributes
したがって、他のすべてのタグはTAGから継承します
class H1(TAG):
def __init__(self, contents=None, **attributes):
TAG.__init__(self, 'H1', contents, **attributes)
class H2(TAG):
def __init__(self, contents=None, **attributes):
TAG.__init__(self, 'H2', contents, **attributes)
メインのTAGクラスには、次のようなto_stringメソッドがあります。
def to_string(self):
yield '<{}'.format(self.tag)
for (a, v) in self.attr_g():
yield ' {}="{}"'.format(a, v)
if self.NO_CONTENTS:
yield '/>'
else :
yield '>'
for c in self.contents:
if isinstance(c, TAG):
for i in c.str_g():
yield i
else:
yield c
yield '</{}>'.format(self.tag)
基本的にto_stringメソッドの結果を書き出します。
この問題は、多くのTAGが生成されており、パフォーマンスに影響を与えるのに十分な大きさのページに発生します。
パフォーマンスを向上させるために私ができるクイックウィンはありますか?