super()继承

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZHH_Love123/article/details/88226636

【super作用】

  1. 如果子类(Puple)继承父类(Person)不做初始化,那么会自动继承父类(Person)属性name。
  2. 如果子类(Puple_Init)继承父类(Person)做了初始化,且不调用super初始化父类构造函数,那么子类(Puple_Init)不会自动继承父类的属性(name)。
  3. 如果子类(Puple_super)继承父类(Person)做了初始化,且调用了super初始化了父类的构造函数,那么子类(Puple_Super)也会继承父类的(name)属性
# coding = utf-8
import requests
class Person(object):
    def __init__(self,name = "person"):
        self.name = name

class Pupel(Person):  # 不做初始化 会自动继承父类属性 name
    pass

class Puple_init(Person):  # 做初始化  且不调用super初始化父类构造函数 不会继承父类属性 name
    def __init__(self,age):
        self.age = age

class Puple_super(Person):  # 做初始化  也调用super().__init__(name)初始化父类构造函数  会继承父类属性 name
    def __init__(self,name,age):
        self.age = age
        super().__init__(name)

pp = Pupel()
pp_i = Puple_init(10)
pp_s = Puple_super("supder_person", 10)

print(pp.name)  #person
# print(pp_i.name)   #AttributeError: 'Puple_init' object has no attribute 'name'
class Father(object):
    def __init__(self, name):
        self.name=name
        print ( "name: %s" %( self.name))
    def getName(self):
        return 'Father ' + self.name
 
class Son(Father):
    def __init__(self, name):
        super(Son, self).__init__(name)
        print ("hi")
        self.name =  name
    def getName(self):
        return 'Son '+self.name
 
if __name__=='__main__':
    son=Son('runoob')
    print ( son.getName() )

【继承顺序】

class A:
    def __init__(self):
        print('A')
        
class B(A):
    def __init__(self):
        print('B')
        super().__init__()

class C(A):
    def __init__(self):
        print('C')
        super().__init__()

class D(A):
    def __init__(self):
        print('D')
        super().__init__()
        
class E(B, C):
    def __init__(self):
        print('E')
        super().__init__()


class F(C, D):
    def __init__(self):
        print('F')
        super().__init__()

class G(E, F):
    def __init__(self):
        print('G')
        super().__init__()

猜你喜欢

转载自blog.csdn.net/ZHH_Love123/article/details/88226636