继承:深度优先和广度优先

面向对象

封装: 其实就是使用构造方法将内容封装到对象中,然后通过对象直接或者self间接获取被继承的内容

继承: 对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必去实现每个方法

(除了子类和父类,你可能看到过派生类和基类,他们与子类和父类只是叫法不同而已)

多态:(鸭子类型): 一个接口的多种实现方式

继承

class 父类:

  def 父类中的方法(self):

    # do something

class 子类(父类): #子类继承父类,既拥有了父类中所有方法

  pass

zi = 子类()    # 创建子类对象

zi.父类中的方法()    # 执行从父类中继承的方法

python类可以继承多个类

python的类如果继承了多个类,那么其寻找方式有两种,分别是,深度优先和广度优先

当类是新式类时,多继承情况下,会按照广度优先方式查找

什么是继承?

只执行本类的方法

只执行父类的方法

即执行本类又执行父类的方法

什么是单继承?

新式类,经典累查询顺序一样

什么是多继承?

新式类: 广度优先

  广度优先: 米格节点有且只走一次

  查找方法:    mro()  只适合新式类

经典类: 深度优先

什么是经典类?

不继承object的类都是经典类

python2x所有的类  默认  都不继承object类,所有的类默认都是经典类

python2x:(既有新式类,又有经典类) 你可以让他继承object类

什么是新式类?

凡是继承object的类都是新式类

  python3x版本中,所有的类都是新式类,因为python3x中的类都默认继承object

原文地址:https://www.cnblogs.com/ALADL/p/9368011.html