1

私は有限状態アクセプター(FSA ...基本的にはツリー)を構築しています。多くの で構成されている必要があるため、FSAクラスとクラスがあります。ただし、最初に を作成するときは、その開始と終了を作成し、それらを接続したいと考えています。そのためのコードは次のとおりです。StateFSAStatesFSAStateState

class State (object):
    __slots__ = "chars","children"
    def __init__(self,chars,children=[]):
        self.chars = chars
        self.children = children

class FSA (object):
    __slots__ = "vocab"
    def __init__(self,vocab):
        self.vocab = vocab
        self.start = State("0")
        self.finish = State("1")
        self.start.children.append(self.finish)
        self.finish.children.append(self.start)

ただし、実行するfsa = FSA("vocab.small")と、次のエラーがスローされます。

AttributeError: 'FSA' object has no attribute 'start'

を開始して、そのためにFSA2 つ作成する方法はありStatesますか?

4

1 に答える 1

4

あなたが言った:

__slots__ = "vocab"

それはどういう意味ですか?開始属性が必要な場合は、それを__slots__リストに含めるか、まったく使用__slots__しないようにする必要があります。__slots__メモリに問題がない限り、属性を省略したほうがよいでしょう。

于 2013-02-23T00:02:32.140 に答える