|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
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)
print(soldiers.fire())
以下是输出结果!,请大神指导一下为什么会多个None!谢谢!
需要换弹夹
0
30
None
因为 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()
复制代码
|
|