为什么在Python中self.bullet_count = 0初始化不起作用
class Gun:#定义一个叫做Gun的类
def __init__(self,model):
#初始化 model和bullet_cunt这两个形参
self.model = model
self.bullet_count = 0
def add_bullet(self,count):
# 增加子弹数量并给予形参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))
#定义一个叫做qiang的对象
qiang =Gun("ak47")
qiang.add_bullet()
qiang.shoot()
报错如下
line 20, in <module>
qiang.add_bullet()
TypeError: add_bullet() missing 1 required positional argument: 'count'
我在add方法里加入数值0 就正常 空值就报错
add_bullet()方法缺少count参数 缺参数肯定报错 qiang =Gun("ak47")
qiang.add_bullet()
倒数第二个函数,你没有传入count值
qiang.add_bullet(1) # count = 1 add_bullet()没传参数啊,想不传的话需要定义为缺省参数 感觉好难学呀 100斤d胖子 发表于 2020-4-30 21:44
qiang =Gun("ak47")
qiang.add_bullet()
倒数第二个函数,你没有传入count值
我定义初始的参数是0 啊self.bullet_count = 0 本帖最后由 100斤d胖子 于 2020-5-4 14:04 编辑
一只凉不了 发表于 2020-5-1 22:20
我定义初始的参数是0 啊self.bullet_count = 0
def __init__():
self.bullet_count = 0
def add_bullet(self,count): # 形参,调用时必须赋值。不想赋值,需要定义缺省值如(self, count = 1)
self.bullet_count += count
qiang =Gun("ak47")1
qiang.add_bullet() # 这里调用时必须赋值 qiang.add_bullet(1) 等价于 qiang.add_bullet(count = 1)
def add_bullet(self,count=1):
页:
[1]