鉴于函数的下面令人头疼的问题,我将如何调用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
答案 0 :(得分:3)
Python不是Java。
在Python中,在另一个类中声明一个类并不会赋予它对父类的任何特殊访问权限。这就是为什么我说这几乎没有理由这么做。
如果您需要一个LineData实例来访问PrintingTemplate实例,您需要为该实例提供一个引用,方法是将其传递给__init__
方法或直接在那里实例化。 / p>