零基础小白入门必看篇:学习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面向对象的继承指的是多个类之间的所属关系 , 即子类默认继承父类的所有属性的方法查看子类所继承的所有父类以及层级关系: 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):
推荐阅读
- 苹果两款新iPad齐曝光:性能提高、入门款更轻薄、售价便宜
- RHEL 9提升了x86_64处理器的入门要求
- 视频小白们的外挂装备:百视悦R5监视器+T2提词器套装上手
- 市科委与联影集团联合首设“探索者计划”,共推基础及应用基础研究
- 入门HiFi享好声,这几款耳机绝对值得入手
- 从事Java开发时发现基础差,是否应该选择辞职自学一段时间
- 大力发展新型基础设施建设“数字浙江”再添新引擎
- 「新书推荐」5G安全:5G生态的重要组成部分和5G发展的关键基础条件
- DIY从入门到放弃:电源挑贵的买就靠谱吗?
- 微软Surface Pro 8基础版规格或升级 酷睿i3+8GB运存