zoukankan      html  css  js  c++  java
  • Python面向对象三大特性之继承

    #基类
    class F:
      def f1(self):
        pass

    #派生类
    class S(F):
      def f2(self):
        pass

    obj = s()
    obj.f2()
    obj.f1()

    Python 支持多继承,多继承的类里面有相同的方法前面的优先

    vim day7-4.py

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    
    class D():
        def bar(self):
            print 'D.bar'
    
    class C(D):
        def bar(self):
            print 'C.bar'
    
    
    class B(D):
        pass
    
    class A(B,C):
        pass
    
    a = A()
    a.bar()
    

      输出为D.bar

    改成新式类

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    
    class D(object):
        def bar(self):
            print 'D.bar'
    
    class C(D):
        def bar(self):
            print 'C.bar'
    
    
    class B(D):
        pass
    
    class A(B,C):
        pass
    
    a = A()
    a.bar()
    

    输出为C.bar

      

    经典类是深度优先,新式类深度优先

    多继承在写代码中用的比较少,但是还是有人会用,笔试中也可能会出现.

    PS:只有C,B均继承D才能广度优先,假如C没有继承D则还是使用D里面的bar方法

      判断一个类是否新式类看它是否继承了object

  • 相关阅读:
    zookeeper学习笔记
    wsl笔记
    SSDB数据库笔记
    spring笔记
    redis笔记
    openresty配置
    openresty安装笔记
    mybatis笔记
    nginx配置
    STM32F373(青风)+CUBEMX快速上手
  • 原文地址:https://www.cnblogs.com/minseo/p/6900392.html
Copyright © 2011-2022 走看看