私はcsv.DictWriter
クラスを使用している、と私はそれを継承させたい:Pythonの継承古いスタイルのタイプ
class MyObj(csv.Dictwriter):
...
しかし、このタイプは、古いスタイルのオブジェクトです。 MyObj
は新しいスタイルのクラスになりますが、それでもcsv.DictWriter
から継承できますか?
私はcsv.DictWriter
クラスを使用している、と私はそれを継承させたい:Pythonの継承古いスタイルのタイプ
class MyObj(csv.Dictwriter):
...
しかし、このタイプは、古いスタイルのオブジェクトです。 MyObj
は新しいスタイルのクラスになりますが、それでもcsv.DictWriter
から継承できますか?
はい、あなただけの、あまりにも、object
から継承する必要があります:ダニエルとして
class MyObj(object, csv.DictWriter):
def __init__(self, f, *args, **kw):
csv.DictWriter.__init__(self, f, *args, **kw)
を正しくstates、あなたはobject
をミックスインする必要があります。しかし、新しいスタイルのクラスを使用しての一つの大きなポイントはまた、このようにあなたがelsewhere述べたように
class MyObj(csv.DictWriter, object):
def __init__(self, csvfile, mycustomargs, *args, **kwargs):
super(MyOobj, self).__init__(csvfile, *args, **kwargs)
...
、object
を使用する必要があり、super
を使用していることは、最後の親である必要があり、そのような__str__
や__repr__
としてそれ以外object
のデフォルトの方法でしょう他の親の実装をオーバーライドしてください。これはあなたが望むものではありません...
'class MyObj(csv.DictWriter、object)'?例えば、 http://stackoverflow.com/q/11527921/3001761 – jonrsharpe