目标

  • 士兵突击案例
  • 身份运算符

封装

  1. 封装 是面向对象编程的一大特点
  2. 面向对象编程的 第一步 —— 将 属性方法 封装 到一个抽象的
  3. 外界 使用 创建 对象,然后 让对象调用方法
  4. 对象方法的细节 都被 封装类的内部

    一个对象的 属性 可以是 另外一个类创建的对象

01. 士兵突击

需求

  1. 士兵 许三多 有一把 AK47
  2. 士兵 可以 开火
  3. 能够 发射 子弹
  4. 装填 装填子弹 —— 增加子弹数量

封装案例 II - 图1
小结

  1. 创建了一个 士兵类,使用到 __init__ 内置方法
  2. 在定义属性时,如果 不知道设置什么初始值,可以设置为 None
  3. 封装的 方法内部,还可以让 自己的 使用其他类创建的对象属性 调用已经 封装好的方法

    02. 身份运算符

    身份运算符用于 比较 两个对象的 内存地址 是否一致 —— 是否是对同一个对象的引用
  • Python 中针对 None 比较时,建议使用 is 判断 | 运算符 | 描述 | 实例 | | —- | —- | —- | | is | is 是判断两个标识符是不是引用同一个对象 | x is y,类似 id(x) == id(y) | | is not | is not 是判断两个标识符是不是引用不同对象 | x is not y,类似 id(a) != id(b) |

is 与 == 区别:

is 用于判断 两个变量 引用对象是否为同一个 == 用于判断 引用变量的值 是否相等

  1. >>> a = [1, 2, 3]
  2. >>> b = [1, 2, 3]
  3. >>> b is a
  4. False
  5. >>> b == a
  6. True