单继承:
# -*- coding:utf-8 -*-
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()
# 结果:
# name: hello
# B hello
# -*- coding:utf-8 -*-
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 __init__(self, name):
print "hi"
self.name = name
def getName(self):
return 'B '+self.name
if __name__=='__main__':
b=B('hello')
print b.getName()
# 结果:
# hi
# B hello
# -*- coding:utf-8 -*-
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()
# 结果:
# name: hello
# hi
# B hello
https://blog.youkuaiyun.com/zsh142537/article/details/82685721
本文探讨了Python中单继承的实现方式,包括子类如何调用父类的构造函数和方法,以及方法重写的基本原理。通过三个不同场景的代码示例,详细解释了在子类中不重写、重写__init__方法以及使用super()调用父类__init__方法的情况。
3311

被折叠的 条评论
为什么被折叠?



