zoukankan      html  css  js  c++  java
  • 重写父类的方法及经典类和新式类的区别

    1.父类重写的实例展示 (继承才有父类)

    # coding=utf-8

    class Zll():

             # def smile(self):

             #      print('哈哈哈')

             #      return 'aa'

             pass

    class Dcg():

             def smile(self):

                       print('啊啊啊啊啊')

    class Lw():

             def smile(self):

                       print('嘿嘿嘿')

    class Xz(Zll,Dcg,Lw):   #继承多个父类依次找父类是否有该方法,有就调用。

             def smile(self):   #重写父类的方法

                       # Dcg().smile()  #调用了父类   通过Dcg().实例化再调用。指定了父类

                       # super(Xz,self).smile()  #这个自动帮你找到父类的   super 后面写自己 和上述方法一样效果(貌似高逼格),修改父类的构造方法

                       print('呵呵呵')

    x = Xz()  #实例化

    x.smile()  #调用

    对于父类使用的两种需求:

    #1、父类的方法一点用的没有,我重新写的 比如重写smile方法。

    #2、 父类有这个方法,但是呢,它的功能不够完善,给这个方法在原有的基础上,再

    #给他添加一些新功能,比如子类中直接调用父类的方法。

    2. 经典类和新式类的区别:

          1) #pthon2里面,多继承的时候

            #经典类是深度优先,

            # 新式类是广度优先

            #python3里面都是广度优先

            2)python2 经典类里面不能用super

                python3里面经典类和新式类没有任何的区别。

    例子

    class My:

             pass

    class My2(object):   #新式类

             pass

    #python3里面没有任何的区别

    深度和广度优先(python2中)

    class A(object):      #这样就广度优先

        def x(self):

            print('A')

    class B(A):

        # def x(self):

        #     print('B')       

        pass

    class C(A):

        def x(self):

            print('C')

    class D(B,C):

        pass

    s = D()     ###  结果找B  没有就找A  最后C(深度优先,经典类)

    s.x()      ###

  • 相关阅读:
    把手机用户的身份验证简化到极致 – IEMI
    WIFI 功放芯片确定功率大小
    告别镜像端口:完成流量监控全功略
    windows 2003 server 配置为NTP服务器
    【转】VIM 多文件跳转
    【转】在Linux下FQ的看过来
    【转】VIM自动完成
    【转】VIM下的跳转练习
    【转】vim 窗口调整
    【转】Cscope的使用(领略Vim + Cscope的强大魅力)
  • 原文地址:https://www.cnblogs.com/cslw5566/p/9102792.html
Copyright © 2011-2022 走看看