##super()应用场景
对象A 有一个初始化属性first_name
在__init__()
方法中 以及一个 second_name()
方法,当对象B继承了对象A时,对象B就拥有了对象A的所有方法和属性
class A():
def __init__(self):
self.first_name = 'king'
def second_name(self):
print('hao')
class B(A):
def full_name(self):
print('king hao')
输出
>>>A().first_name
'king'
>>>A().second_name()
hao
>>>B().first_name
'king'
>>>B().second_name()
hao
>>>B().full_name()
king hao
但是当我们需要给B()定义一个初始属性 ,就不能像方法A()一样用__init__(self)
,因为直接用 __init__(self)
就相当于重写了父类的 初始化属性
改写
class A():
def __init__(self):
self.first_name = 'king'
def second_name(self):
print('hao')
class B(A):
def __init__(self):
super(B,self).__init__( )
self.english_name = 'horsun'
def full_name(self):
print('king hao')
输出
>>>B().first_name
'king'
>>>B().english_name
'horsun'
>>>B().second_name()
hao
>>>B().full_name()
king hao