如何在父类的祖先对象上调用函数?

时间:2012-09-27 14:48:36

标签: python django

鉴于函数的下面令人头疼的问题,我将如何调用PrintingTemplate继承的utils.PrintingTemplateBase对象上的函数?

我还要提到PrintingTemplateBase需要一个自己的实例(最接近的是PrintingTemplate)

class PrintingTemplate (utils.PrintingTemplateBase) :

    #  Class used to accumulate lines of data
    #
    class LineData :

        #  Class constructor, optionally passed an existing instance in which case
        #  data is copied.
        #
        def __init__ (self, data = None) :

            self.number_of_panes            = 0
            self.material                   = ''  


    #--------------------------------------------------------------------------
    #
    #  LineData subclass for data coming from CalcGlass
    #
    class LineDataGlass (LineData) :

        def __init__ (self, calc_glass) :

            self.number_of_panes           = calc_glass.calc_component.calc_subitem.item.quantity
            try     : self.material        = calc_glass.glass_unit.workshop_description
            except  : self.material        = 'Undefined glass'


    def __init__(self) :

        utils.PrintingTemplateBase.__init__ (self)
        self.constants      = None

1 个答案:

答案 0 :(得分:3)

Python不是Java。

在Python中,在另一个类中声明一个类并不会赋予它对父类的任何特殊访问权限。这就是为什么我说这几乎没有理由这么做。

如果您需要一个LineData实例来访问PrintingTemplate实例,您需要为该实例提供一个引用,方法是将其传递给__init__方法或直接在那里实例化。 / p>