因为 Person.fire() 方法没有返回值,所以隐式地返回 None,打印 soldiers.fire() 的返回值就是打印 None。
解决办法:将 print() 去掉即可class Person:#定义一个人类
def __init__(self,name,gun):#定义默认属性
self.name=name
self.gun=gun
def fire(self):#定义开火动作
ak.shout()
print(ak.count)
ak.add_zidan()
print(ak.count)
class Gun:#d定义一个枪类
def __init__(self,name,count):#定义枪属性
self.name=name
self.count=count
def shout(self):#定义枪的击发
if self.count==0:
print('需要换弹夹')
else:
self.count=0
def add_zidan(self):#定义换弹夹
self.count=30
ak=Gun('AK',0)
soldiers=Person('许三多',a.name)
soldiers.fire()
|