2012-09-27 2 views
0

함수의 두통이 줄어들면, PrintTemplate이 상속하는 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

전화하려는 방법의 예를 보여주십시오. 두 LineData 클래스는 무엇을해야합니까? 왜 그것들을 PrintingTemplate 클래스 안에 생성하고 있습니까? 파이썬에서 그렇게할만한 이유가 거의 없습니다. –

+0

글쎄, PrintingTemplate 내부에서'self.decimal0 (var)'을 호출 할 수 있으며 서식이 지정된 float를 0sf로 반환합니다. 하지만 지금은 LineDataGlass 내부에서 그 작업을 수행 할 수 있기를 원합니다. 왜 – Jharwood

+0

? 내가 상속 한 올드 스쿨 프로그래머, 매우 기술적으로 영리한 사람, 코드를 따르기가 거의 불가능한 사람. – Jharwood

답변

3

파이썬은 자바 없습니다.

파이썬에서는 다른 클래스 안에 클래스를 선언해도 부모 클래스에 특별한 액세스가 부여되지 않습니다. 그것이 내가 할 이유가 거의 없다고 말한 이유입니다. 당신이 PrintingTemplate 인스턴스에 액세스 할 수있는 LineData 인스턴스가 필요한 경우

, 당신은 어느 __init__ 방법으로 전달하여 직접이 일을 인스턴스화하여 그것을 해당 인스턴스에 대한 참조를 제공해야합니다.

관련 문제