零基础小白入门必看篇:学习Python之面对对象基础( 三 )

  • __del__(): 当删除对象时, python解释器会默认调用__del__()方法class Washer(): def __init__(self, width, height): self.width = width self.height = height def __del__(self): print(f'{self}对象已经被删除') haier1 = Washer(10, 20) # 对象<__main__.Washer object at 0x000002204F592358>已经被删除 del haier1
  • __dict__(): 类的属性(包含一个字典 , 由类的数据属性组成)class A(object): a = 0 def __init__(self): self.b = 1 aa = A() # 返回类内部所有属性和方法对应的字典 print(A.__dict__) # 返回实例属性和值组成的字典 print(aa.__dict__)

零基础小白入门必看篇:学习Python之面对对象基础文章插图
继承
  • 继承的概念是指一个对象直接使用另一对象的属性和方法Python面向对象的继承指的是多个类之间的所属关系 , 即子类默认继承父类的所有属性的方法查看子类所继承的所有父类以及层级关系: print(子类名.__mro__)# 父类A class A(object): def __init__(self): self.num = 1 def info_print(self): print(self.num) # 子类B class B(A): pass result = B() result.info_print() # 1 # 在Python中,所有类默认继承object类,object类是顶级类或基类;其他子类叫派生类
  • 单继承一个子类可以继承一个父类是单继承# 1. 师父类 class Master(object): def __init__(self): self.kongfu = '[古法煎饼果子配方]' def make_cake(self): print(f'运用{self.kongfu}制作煎饼果子') # 2. 徒弟类 class Prentice(Master): pass # 3. 创建对象daqiu daqiu = Prentice() # 4. 对象访问实例属性 print(daqiu.kongfu) # 5. 对象调用实例方法 daqiu.make_cake()
  • 多继承一个子类可以继承多个父类是多继承# 师父类 class Master(object): def __init__(self): self.kongfu = '[古法煎饼果子配方]' def make_cake(self): print(f'运用{self.kongfu}制作煎饼果子') # 创建学校类 class School(object): def __init__(self): self.kongfu = '[黑马煎饼果子配方]' def make_cake(self): print(f'运用{self.kongfu}制作煎饼果子') # 徒弟类 class Prentice(Master, School): pass daqiu = Prentice() print(daqiu.kongfu) daqiu.make_cake()
  • 子类重写父类的同名属性和方法# 师父类 class Master(object): def __init__(self): self.kongfu = '[古法煎饼果子配方]' def make_cake(self): print(f'运用{self.kongfu}制作煎饼果子') # 创建学校类 class School(object): def __init__(self): self.kongfu = '[黑马煎饼果子配方]' def make_cake(self): print(f'运用{self.kongfu}制作煎饼果子') # 徒弟类 class Prentice(Master, School): def __init__(self): self.kongfu = '[独创煎饼果子配方]' def make_cake(self): print(f'运用{self.kongfu}制作煎饼果子') daqiu = Prentice() print(daqiu.kongfu) daqiu.make_cake() print(Prentice.__mro__) # 子类和父类具有同名属性和方法 , 默认使用子类的同名属性和方法
  • 子类调用父类的同名属性和方法class Master(object): def __init__(self): self.kongfu = '[古法煎饼果子配方]' def make_cake(self): print(f'运用{self.kongfu}制作煎饼果子') class School(object): def __init__(self): self.kongfu = '[黑马煎饼果子配方]' def make_cake(self): print(f'运用{self.kongfu}制作煎饼果子') class Prentice(School, Master): def __init__(self): self.kongfu = '[独创煎饼果子配方]' def make_cake(self):