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     

我的疑问是为什么用两个参数(和) BClass在代码中实例化/调用。有一个没有其他参数的更新方法(只是)并且没有明确的方法。那么,在这种情况下, 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 回答