Python运行报错AttributeError: 'list'对象无'add_student'属性,请问哪里出错了
报错原因解析
你遇到的报错核心是:你尝试对Python内置的list(列表)类型对象调用add_student方法,但列表本身并没有内置这个方法,该方法一般是你自己写的自定义类中定义的成员方法。
常见的错误场景如下:
- 变量初始化错误:你本应该给变量赋值为你自定义的、包含
add_student方法的类的实例,结果错误赋值成了空列表[],比如你写了manager = [],而不是manager = 自定义管理类() - 变量被意外覆盖:你一开始正确初始化了自定义类的实例,但是后续代码中不小心把同名变量重新赋值成了列表,后续再调用方法时就会触发该错误
- 调用对象写错:你把方法调用的目标对象搞混,比如你有存储学生的列表
student_list和管理类实例manager,错误写成student_list.add_student(xxx),而正确写法是manager.add_student(xxx)
错误示例参考
class StudentManager: def add_student(self, name): self.students.append(name) # 错误赋值,把实例变量写成了列表 manager = [] manager.add_student("李四") # 此处触发对应报错
修复方案
你可以定位到代码第14行(报错提示的main函数第14行),查看调用add_student方法的变量名,向上回溯这个变量的赋值逻辑,确认变量没有被错误赋值为列表即可。
内容的提问来源于stack exchange,提问作者dominic tanui
相关产品推荐
相关产品推荐

