我的网站产品的代码如下:
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
在CClass
代码中使用两个参数(self.context
和self.request
)进行实例化/调用的原因。
BClass
有一个没有其他参数的更新方法(仅self
),并且没有明确的__init__
方法。
那么,self.context
和self.request
在这种情况下的作用是什么?这是一种继承还是收购?
之后我看到了这一点,我想我并没有完全理解Plone中无处不在的上下文和容器概念。
答案 0 :(得分:3)
对于BClass的两个子类都没有任何意义,并且将BClass作为实例。我不明白第self.panel = BClass(self.context, self.request)
行应该达到什么目的。
__init__
方法中设置。容器是上下文的属性,通常为__parent__
。