2012-02-17 1 views
1

私はWriterクラスから継承するCsvWriterクラスを持っています。 Writerクラスには、複数の '子'クラスで使用したいgetInfo関数があります。ライター・クラスがまだintansiatedされていないので、私はGETINFOを呼び出すことはできませんので継承された 'mother'クラスの関数を 'child class'内から使用するにはどうすればよいですか?

TypeError: unbound method getInfo() must be called with Writer instance as first argument (got Element instance instead) 

:しかし、ときに私は、私はこのエラーを取得するCsvWriterクラスからはgetinfo関数を呼び出します。しかし、私はそれをインスタンス化したくありません(私は思う)。私はそれを「子供」クラスから呼びたいからです。 CsVwriter()からその関数をどのように呼び出すことができますか?

以下

は、2つのクラスです:

class Writer(): 
    def __init__(self, path, readerInstance): 
     self.path = path 
     self.readerInstance = readerInstance 
     return 

    def getInfo(self, element): 
     print element 


class CsvWriter(Writer): 
    def __init__(self,path, readerInstance): 
     self.path = path 
     self.readerInstance = readerInstance 
     for feature in readerInstance.getFeatures(): 
      Writer.getInfo(feature) 
     return 

私はこのようにそれらを実行します。

filePath = '/homes/ndeklein/test.featureXML' 
elements = featXML.Reader(filePath) 
featXML.CsvWriter('test.csv', elements) 
+4

子クラスはすべてのメソッドを継承します。単に 'self.getInfo(...)'を呼び出してください。そうでなければ、なぜあなたは継承を全く設定しませんか? –

答えて

3

self.getInfo()Writer.getInfo()を交換してください。

関連する問題