私はパーサーを書いていて、デコードするテキストがたくさんありますが、ほとんどのユーザーはすべてのデータからいくつかのフィールドしか気にしません。したがって、ユーザーが実際にデータの一部を使用する場合にのみ、デコードを実行したいと考えています。これは良い方法ですか?
class LazyString(str):
def __init__(self, v) :
self.value = v
def __str__(self) :
r = ""
s = self.value
for i in xrange(0, len(s), 2) :
r += chr(int(s[i:i+2], 16))
return r
def p_buffer(p):
"""buffer : HASH chars"""
p[0] = LazyString(p[2])
それは私がオーバーライドする必要がある唯一の方法ですか?