学习日记17--面向对象编程3

本文深入讲解面向对象编程的核心概念,包括私有方法和属性的作用及使用方式,类的继承机制,以及如何通过实例演示实现消息发送功能。同时介绍了Python中__del__方法的应用场景和引用计数的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象编程

  1. 隐藏属性:可以直接获取对象的属性,但最好定义一个方法来获取对象的属性。
  2. 私有方法:如果一个方法前带有两个– ,说明是个重要方法(进行了私有化)。私有方法不能直接调用,调用时一般先调用普通方法(公有方法),这时会根据是否满足一定条件来决定是否调用该方法的私有方法。

    1 class Dog:
    2     #private method
    3     def __send_msg(self):
    4         print("------sending message------")
    5     #public method
    6     def send_msg(self,new_money):
    7         if new_money>10000:
    8             self.__send_msg()
    9         else:
    10             print("not enough,please recharge")
    11 
    12 dog = Dog()
    13 dog.send_msg(1000)
  3. __del__ 方法:当对象被完全删除时或者程序结束时(此时对象会自动释放),自动调用,来表达这一情况的发生。

  4. 用sys库的getrefcount(对象名) 可以测量一个对象的引用计数(道理同硬连接数),其结果为实际引用数+1。
    • 类的继承:代码复用,少些代码。
    • 定义子类方法: class 子类名(父类名)

      Created with Raphaël 2.1.2 父类(基类) 父类(基类) 子类(派生类) 子类(派生类) 子类的子类 子类的子类 继承 继承的扩展
    • 子类继承时不会继承父类的私有方法和私有属性,除非是通过父类的方法来调用其的私有。

      1 class A:
      2     def __init__(self):
      3         self.num1 = 100
      4         self.__num2 = 200
      5     def test1(self):
      6         print("-------1------")
      7     def __test2(self):
      8         print("------2------")
      9 
      10     def test3(self):
      11         self.__test2()
      12         print(self.__num2)
      13 
      14 class B(A):
      15     def test4(self):
      16         self.__test2()
      17         print(self.__num2)
      18 
      19 b = B()
      20 b.test1()
      21 b.test3()
      22 b.test4()

补充内容

  1. Vim中编辑中的撤销操作:
    u 撤销上一步的操作;
    Ctrl+r 恢复上一步被撤销的操作;
    命令模式下按下dd键删除整行;
    再按u撤销上一次操作。
  2. 当一个数据的硬链接数为0时,才会将数据删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值