封装python
一个对象的 属性 能够是 另一个类建立的对象编程
需求spa
code
shoot
方法需求对象
print
提示射击,而且输出子弹数量class Gun: def __init__(self, model): # 枪的型号 self.model = model # 子弹数量 self.bullet_count = 0 def add_bullet(self, count): self.bullet_count += count def shoot(self): # 判断是否还有子弹 if self.bullet_count <= 0: print("没有子弹了...") return # 发射一颗子弹 self.bullet_count -= 1 print("%s 发射子弹[%d]..." % (self.model, self.bullet_count)) # 建立枪对象 ak47 = Gun("ak47") ak47.add_bullet(50) ak47.shoot()
假设:每个新兵 都 没有枪blog
定义没有初始值的属性内存
在定义属性时,若是 不知道设置什么初始值,能够设置为 None
开发
None
关键字 表示 什么都没有None
赋值给任何一个变量fire
方法需求string
class Soldier: def __init__(self, name): # 姓名 self.name = name # 枪,士兵初始没有枪 None 关键字表示什么都没有 self.gun = None def fire(self): # 1. 判断士兵是否有枪 if self.gun is None: print("[%s] 尚未枪..." % self.name) return # 2. 高喊口号 print("冲啊...[%s]" % self.name) # 3. 让枪装填子弹 self.gun.add_bullet(50) # 4. 让枪发射子弹 self.gun.shoot()
小结it
__init__
内置方法None
身份运算符用于 比较 两个对象的 内存地址 是否一致 —— 是不是对同一个对象的引用
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
用于判断 两个变量 引用对象是否为同一个==
用于判断 引用变量的值 是否相等
>>> a = [1, 2, 3] >>> b = [1, 2, 3] >>> b is a False >>> b == a True