zoukankan      html  css  js  c++  java
  • 子类和父类

    1. 子类没有初始化函数, 则初始化子类的时候,需要有父类的初始化参数

    Class P(object):

        def __init__(self,name):

            self.name = name

            print(self.name)

    Class C(P):

        pass

    c = C('my name is c') -->一定要有父类的初始化函数,否则会出错

    2. 子类有自己的初始化函数, 并且子类没有显式的调用父类的初始化函数的时候,初始化的时候,子类不需要带父类的初始化参数,子类不会有父类的初始化参数

    Class P(object):

        def __init__(self,name):

            self.name = name

            print(self.name)

    Class C(P):

        def __init__(self):

            self.name = 'I'm child'

            print(self.name)

    c = C() -->初始化没有问题

    3. 子类有自己的初始化函数,且子类显式的调用父类的初始化函数的时候,初始化的时候,子类不需要带父类的初始化函数,但子类在调用父类的初始化函数的时候需要有父类的参数

    Class P(object):

        def __init__(self,name):

            self.name = name

            print(self.name)

    Class C(P):

        def __init__(self):

            super(C,self).__init__('aaa')   -->父类的参数,此句类似于 P.__init__(self,'aaa'),当在子类中需要调用父类的属性或者方法时候,可以通过父类名直接访问父类的属性,当调用父类的方法是,需要将”self”显示的传递进去,这种方式有一个不好的地方就是,需要经父类名硬编码到子类中,为了解决这个问题,可以使用Python中的super关键字

            self.t = 'I'm child'

    c = C() -->初始化没有问题

    c.name -->也有参数

    原文出处:

    https://blog.csdn.net/brucewong0516/article/details/79121179

  • 相关阅读:
    Windows故障恢复控制台使用方法
    Windows XP SP2下安装WinCC V6.0 SP3 的安装步骤
    Windows Server2003 安装WinCC6.2 sp2
    pb6.5不兼容Oracle10g
    Windows Server 2003 Sp2 雨林木风版
    移动硬盘WINPE启动盘安装GHOST系统图解
    Vista硬盘安装详细图解
    系统的层次性与单一职责原则
    用dynamic增强C#泛型表达力
    谈单元测试的状态验证和行为验证
  • 原文地址:https://www.cnblogs.com/fireflymao/p/9308794.html
Copyright © 2011-2022 走看看