#old-style class
class Base():
def __init__(self, name):
self.name = name
class Child(Base):
def __init__(self,name):
Base.__init__(self,name)
print self.name
Child('zs')
#new-style class
class Base(object):
def __init__(self, name):
self.name = name
class Child(Base):
def __init__(self,name):
super(Child, self).__init__(name)
print self.name
Child('zs')
常见错误:
class Base():
def __init__(self, name):
self.name = name
class Child(Base):
def __init__(self,name):
super(Child,self).__init__(self,name) #old-style class不支持super,这里会报错“TypeError: must be type, not classobj”
print self.name
Child('zs')
修正方式:
1. Base继承object,即修改为new-style class方式
2. 修改为old-style class方式,即第一个示例(去掉super)
-end