子类(派生类)并不会自动调用父类(基类)的init方法,例如:
class Foo(object):
def init(self):
self.val = 1
class Foo2(Foo):
def init(self):
print self.val
if name == ‘main‘:
foo2 = Foo2()
运行时报错。
调用父类的init方法有两种,第一种:
class Foo(object):
def init(self):
self.val = 1
class Foo2(Foo):
def init(self):
Foo.init(self) //类调用实例方法时,需要传入self指代的实例
print self.val
if name == ‘main‘:
foo2 = Foo2()
第二种:
class Foo(object):
def init(self):
self.val = 1
class Foo2(Foo):
def init(self):
super(Foo2, self).init()
print self.val
if name == ‘main‘:
foo2 = Foo2()
这两种方法的运行结果均为:
1
不过这两种方法是有区别的。