士兵突击
在定义属性时,如果不知道设置什么初始值,可以设置为None
在python
中针对None
比较时, 建议使用is
判断
class Gun:
def __init__(self,model):
# 1. 枪的型号
self.model = model
# 2. 子弹的数量
self.bullet_count = 0
def add_bullet(self,count):
self.bullet_count += count
def shoot(self):
# 1. 判断子弹数量
if self.bullet_count <= 0:
print("[%s]没有子弹了..." %self.model)
return
# 2. 发射子弹, -1
self.bullet_count -= 1
# 提示发射信息
print("[%s] 突突突... [%d]" %(self.model,self.bullet_count))
class Soldier:
def __init__(self,name):
# 1. 姓名
self.name = name
# 2. 枪 - 新兵没有枪
self.gun = None
def fire(self):
# 1. 判断士兵是否有枪
# if self.gun == None:
# 在python中针对None比较时, 建议使用 is 判断
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()
# 创建枪对象
ak47 = Gun("AK47")
# 创建许三多
xusanduo = Soldier("许三多")
xusanduo.gun = ak47
xusanduo.fire()
print(xusanduo.gun)
输出为
身份运算符
身份运算符用于比较
两个对象的内存地址
是否一致 ——是否是对同一个对象的引用
运算符 | 描述 | 实例 |
---|---|---|
is | 判断两个标识符是不是引用同一个对象 | x is y, 类似 id(x) == id(y) |
is not | 判断两个标识符是不是引用不同对象 | x is not y, 类似 id(a) != id(b) |
is 与 == 区别
is
用于判断两个变量引用对象是否为同一个
==
用于判断引用变量的值是否相等