您的位置:首页 > 编程语言 > Python开发

python 子类继承父类的__init__方法

2016-07-22 00:29 711 查看
父类A

class A(object):
def __init__(self, name):
self.name=name
print "name:", self.name
def getName(self):
return 'A ' + self.name


子类不重写__init__,实例化子类时,会自动调用父类定义的__init__

class B(A):
def getName(self):
return 'B '+self.name

if __name__=='__main__':
b=B('hello')
print b.getName()


执行

$python lei2.py
name: hello
B hello


但重写了__init__时,实例化子类,就不会调用父类已经定义的__init__

class A(object):
def __init__(self, name):
self.name=name
print "name:", self.name
def getName(self):
return 'A ' + self.name

class B(A):
def __init__(self, name):
print "hi"
self.name = name
def getName(self):
return 'B '+self.name

if __name__=='__main__':
b=B('hello')
print b.getName()


执行

$python lei2.py
hi
B hello


为了能使用或扩展父类的行为,最好显示调用父类的__init__方法

class A(object):
def __init__(self, name):
self.name=name
print "name:", self.name
def getName(self):
return 'A ' + self.name

class B(A):
def __init__(self, name):
super(B, self).__init__(name)
print "hi"
self.name = name
def getName(self):
return 'B '+self.name

if __name__=='__main__':
b=B('hello')
print b.getName()


执行

$python lei2.py
name: hello
hi
B hello
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: