面向对象

1、如何创建类
  class 类名:
  pass

 

2、创建方法
  构造方法,__init__(self,)
  obj=类(形参)
  obj.普通方法名()

 

3、面向对象三大特性之一:封装
  class Bar:
  def __init__(self,形参1...)
  self.形参1=形参1
  ...


4、试用场景:
  如果多个函数中一些相同参数时,转换成面向对象

 

5、面向对象三大特性之二:继承
  1、格式: class 父类:
  pass
  class 子类(父类):
  pass


  2、重写:防止父类中的方法


  3、self永远是执行该方法的调用者


  4、扩展父类方法:

  super(子类,self).方法名(...)
  父类名.方法名(self,...)

6、python中支持多继承(调用多父类中同名方法时)

  a、左侧优先
  b、一条道走到黑
  c、同一个跟时,根最后执行(两个父类同时继承于一个obj类,左侧的父类没有覆写obj类中fun的方法,而右侧的父类覆写了obj类中的fun方法,子类在调用fun方法时执行右侧父类覆写方法)
  d、调用中遇到的self为调用对象,不管在哪个方法中通过self调用方法,都是从self对象所属类开始找(sun类继承了fu类,fu类继承了ye类并覆写了ye类中的fun方法,sun类调用ye类中的foo方法时执行到  self.fun(),这时执行的fun方法是fu类中覆盖的fun方法。)
  e、当zi类继承fu类后,
  (3)zi类和fu类都有__init__构造函数时,创建zi类对象时会执行zi类的构造函数。
  (2)zi类没有__init__构造函数,而fu类有__init__构造函数时,创建zi类对象时会执行fu类的构造函数。多个父类有__init__构造函数时,执行一个。


7、面向对象三大特性之三:多态
  ==>原生多态