0

次のようなコードのサイト製品があります。

class AClass(grok.View):
    """ Code of AClass """
    pass

class BClass(AClass):
    """ Code of BClass with 'update' method defined """
    pass

class CClass(BClass):
    def update(self):
        self.panel = BClass(self.context, self.request)
        # more code     

私の疑問は、2 つのパラメーター (および) を使用してコードでBClassインスタンス化/呼び出される理由です。 他のパラメーターなし ( のみ ) の update メソッドがあり、メソッドが明示的にありません。では、この場合のandの機能は何ですか? これは一種の継承ですか、それとも取得ですか?CClassself.contextself.requestBClassself__init__self.contextself.request

その後これを見て、Plone のどこにでもあるコンテキストとコンテナの概念を完全には理解していなかったように思います。

4

1 に答える 1

3

BClass からサブクラス化し、BClass をインスタンスとして持つことは意味がありません。self.panel = BClass(self.context, self.request)ラインが何を達成することになっているのかわかりません。

コンテキストとコンテナーは決して遍在するものではありません。コンテキストは、表示しているオブジェクトです。クラス__init__メソッドで設定されます。コンテナーはコンテキストの属性であり、通常は__parent__.

于 2013-05-21T20:40:34.213 に答える