求助!!各位大佬,请问下面代码的错误是如何出现的,如何解决
>>> class Res():def __init__(self,num = 0):
self.num = num
def incr(self):
self.abc += self.num
def set(self,number):
self.number = number
print('最多%d就餐'%self.number)
def increment(self,a):
self.number1 = a
self.number += self.number1
print('增加%d人就餐'%self.number1 + ',最多%d人就餐'%self.number)
>>> a = Res(4)
>>> a.incr()
Traceback (most recent call last):
File "<pyshell#76>", line 1, in <module>
a.incr()
File "<pyshell#74>", line 5, in incr
self.abc += self.num
AttributeError: 'Res' object has no attribute 'abc' 求助 本帖最后由 1223253411 于 2020-6-18 19:54 编辑
错误的点在
def incr(self):
self.abc += self.num
这里,为什么呢,self.abc都没有定义啊,没有这个变量怎么累加?
就像
b = 1
a += b
# a是啥??
你可以先在初始化函数下定义一个self.abc,这样在内存中才能找到这个变量的存在
ps:错误的第一时刻,你应该看它的报错行,报错信息
Traceback (most recent call last):
File "<pyshell#76>", line 1, in <module>
a.incr()
File "<pyshell#74>", line 5, in incr
self.abc += self.num
AttributeError: 'Res' object has no attribute 'abc'
看 , 它已经很明确的告诉你Res对象没有属性abc了,这个报错真的很重要的,解决问题都是从这个点出发,如果你不看的话,会损失很多东西的
英文不是障碍,因为有百度翻译、谷歌翻译、有道翻译、阿巴阿巴阿巴等等,我还真不信每个程序员英语都牛啤{:10_327:} ,反正我英语不行,没有翻译我都看不懂
页:
[1]