面向对象
封装: 其实就是使用构造方法将内容封装到对象中,然后通过对象直接或者self间接获取被继承的内容
继承: 对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必去实现每个方法
(除了子类和父类,你可能看到过派生类和基类,他们与子类和父类只是叫法不同而已)
多态:(鸭子类型): 一个接口的多种实现方式
继承
class 父类:
def 父类中的方法(self):
# do something
class 子类(父类): #子类继承父类,既拥有了父类中所有方法
pass
zi = 子类() # 创建子类对象
zi.父类中的方法() # 执行从父类中继承的方法
python类可以继承多个类
python的类如果继承了多个类,那么其寻找方式有两种,分别是,深度优先和广度优先
当类是新式类时,多继承情况下,会按照广度优先方式查找
什么是继承?
只执行本类的方法
只执行父类的方法
即执行本类又执行父类的方法
什么是单继承?
新式类,经典累查询顺序一样
什么是多继承?
新式类: 广度优先
广度优先: 米格节点有且只走一次
查找方法: mro() 只适合新式类
经典类: 深度优先
什么是经典类?
不继承object的类都是经典类
python2x所有的类 默认 都不继承object类,所有的类默认都是经典类
python2x:(既有新式类,又有经典类) 你可以让他继承object类
什么是新式类?
凡是继承object的类都是新式类
python3x版本中,所有的类都是新式类,因为python3x中的类都默认继承object