我正在使用csv.DictWriter
类,我想继承它:
class MyObj(csv.Dictwriter):
...
但这种类型是旧式对象。 MyObj
可以是新式的类,但仍然可以从csv.DictWriter
继承吗?
答案 0 :(得分:3)
是的,您只需要继承object
:
class MyObj(object, csv.DictWriter):
def __init__(self, f, *args, **kw):
csv.DictWriter.__init__(self, f, *args, **kw)
答案 1 :(得分:2)
正如丹尼尔states正确,你需要混合object
。但是,使用新式类的一个主要方面是使用super
,因此您应该使用
class MyObj(csv.DictWriter, object):
def __init__(self, csvfile, mycustomargs, *args, **kwargs):
super(MyOobj, self).__init__(csvfile, *args, **kwargs)
...
如上所述elsewhere,object
应该是最后一个父级,否则object
的默认方法(例如__str__
和__repr__
将覆盖其他父级实施,这当然不是你想要的......