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. 发射子弹
self.bullet_count -= 1
# 3. 提示发射信息
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判断
is:判断两个标识符是不是引用同一个对象(x is y,类似id(x) == id(y))
is not:判断两个标识符是不是引用同一个对象(x is not y,类似id(x) != id(y))
is和==的区别:
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)
python士兵突击_03_士兵开火
最新推荐文章于 2022-09-06 16:22:14 发布