0

Python PDF ライブラリを分析するブログ投稿で、S.Lottは次のコメントをしています。

以下は、非常に貧弱なプログラミングの一例です。

#Connect the parser and document objects.    
parser.set_document(doc)    
doc.set_parser(parser)

これら 2 つのうちの 1 つだけが必要です。もう 1 つはセッター メソッドの一部として簡単に処理されます。

セッターメソッドを介してこれを行うPythonicの方法は何ですか?

4

2 に答える 2

2

著者の意味はこれだと思います:

class Parser(object):
  def set_document(self, doc):
    self.doc = doc
    doc.parser = self

他のセッター、、はset_parser()冗長であると主張することができます。

于 2012-05-03T10:24:40.063 に答える
2
class Parser(object):
    def set_document(self, doc):
        doc.set_parser(self)
        # whatever

実際には、循環参照を避けるためにドキュメントクラスとパーサークラスを再設計します。概念が複雑になるだけでなく、弱参照が使用されない限り、ガベージコレクションにも干渉します。

于 2012-05-03T10:25:25.210 に答える