• python面向对象———类,继承


    python面向对象编程

    面向对象程序设计具有三大基本特征:封装、继承、多态

    • 封装是面向对象编程的核心思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装思想。
    • 在Python中,继承是实现重复利用的重要手段,子类通过继承复用了父类的属性和行为的同时,又添加了子类特有的属性和行为。
    • 多态是将父类对象应用于子类的特征

    (面向过程只考虑在函数中封装代码逻辑,而不考虑函数的归属关系)
    (面向对象是一个更大的封装,根据对象职责明确函数的归属关系)

    类的定义与使用

    1. 类的定义
    class Fridge():
    
        def open(self):
            print('打开冰箱门')
    
        def pack(self, goods):
            self.goods = goods
            print('把%s装进冰箱' % self.goods)
    
        def close(self):
            print('关门')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    1. 类的使用
    fridgel = Fridge()
    
    • 1
    1. 属性
      类的属性存储了类的各种数据,定义位置有类的内部和方法的外部,由该类所有的对象共同拥有。类属性可以通过类名访问,也可以通过对象名访问,但只能通过类名修改

    在开发过程中经常会遇到不想让对象的某些属性不被外界访问和随意修改的情况,这时可将这些属性定义为私有属性,再添加一个公有方法,用于私有属性的操作。私有属性定义以“__”开头,如__age。

    1. 构造方法
      在类的方法中,有两种特殊方法,分别在类创建时和销毁时自动调用,分别是构造方法__init__()和析构方法__del__()。
      init()方法的第一个参数是self,即代表对象本身,不需要显式传递实参。但是在创建类时传入的参数实际上都传递给了__init__()方法。
    class Fridge():
        No = 0
        Num = 0
        # 自定义构造方法
        def __init__(self):
            Fridge.No + = 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 对象方法
      对象方法是在类中定义的,以关键字self作为第一个参数。在对象方法中可以使用self关键字定义和访问对象属性,同时对象属性会覆盖类属性。

    继承

    子类不能继承父类的私有属性和方法,但能自动拥有父类其他的属性和方法。如果子类对父类提供的属性和方法进行修改,叫重写。如果子类重新定义了父类方法后,还需要访问父类的同名方法,可以使用super关键字

    class Fridge():
    
        def __init__(self):
            print('这是一个冰箱')
    
        def open(self):
            print('打开冰箱门')
    
        def pack(self, goods):
            self.goods = goods
            print('把%s装进冰箱' % self.goods)
    
        def close(self):
            print('关门')
    
    
    class Double_Door(Fridge):
    
        def __init__(self): #重写父类方法
            super().__init__() #super调用父类方法
            print('这个是双开门冰箱')
    
    
    fridge = Double_Door()
    fridge.pack('大象') #继承父类方法
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    结果:

    这是一个冰箱    
    这个是双开门冰箱
    把大象装进冰箱 
    
    • 1
    • 2
    • 3
  • 相关阅读:
    MongoDB_实战部分(二)
    猿创征文|Vue结合Vant-ui实现数据列表上拉加载更多,下拉刷新功能
    【web前端期末大作业】html网上在线书城大学生静态网页 大学生html当当书城仿站 网上书城购物网页作业HTML
    分布式系统大势所趋,银行运维如何与时俱进?
    城市数字孪生效果怎么样?实景三维国内公司强荐广州华锐互动
    leetcode 2602. 使数组元素全部相等的最少操作次数
    基于Android一周天气个人穿搭衣物喜好管理系统java
    Stable DIffusion 炫酷应用 | AI嵌入艺术字+光影光效
    NVMe SSD 学习总结06 :SSD产品技术特点及市场发展趋势
    面试redis主题一“什么是缓存穿透”
  • 原文地址:https://blog.csdn.net/coising/article/details/128033476