0

鉴于以下减少了函数的头痛,我将如何在 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
4

1 回答 1

3

Python 不是 Java。

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

如果您需要 LineData 实例来访问 PrintingTemplate 实例,则需要通过将其传递给__init__方法或直接在该方法中实例化来为该实例提供对该实例的引用。

于 2012-09-27T15:11:20.450 回答