从另一个类创建一个类的实例

时间:2013-07-30 06:13:52

标签: python-2.7 plone zope

我创建了名为“bdrMenuView”的browserView类。它应该像“class bdrMenuView(BrowserView):”。并且该类包含名为“createPictMenu”的方法。全班应该是

    class bdrMenuView(BrowserView):
              def createPictMenu(self):

现在我又写了一个名为LogoViewlet的类。它应该像“类LogoViewlet(ViewletBase):”。并且该类包含名为“update”的方法。全班应该是

    class LogoViewlet(ViewletBase):
              def update(self):

现在我想从另一个类调用browserView类的方法。我创建了一个类的实例,如

    class LogoViewlet(ViewletBase):
              def update(self):
                   a = bdrMenuView(self,BrowserView)      ---------> instance of BrowserView class
                   logoName = a.createPictMenu() 

我想知道我创造的是否正确。

1 个答案:

答案 0 :(得分:0)

不,这是不正确的,绝对没有意义。为什么要将基类作为参数传递?请学习基本的Python。

视图的参数是上下文和请求。从另一个视图(视图中的视图)内部创建视图的最佳方法是遍历它。您可以使用restrictedTraverse执行此操作。

具体代码取决于您的注册视图。例如,如果要查找的视图名为@@bdrmenu并已注册任何内容,则可以使用self.context.restrictedTraverse('@@bdrmenu')进行查找。