我目前遇到此错误的问题:AttributeError:类型对象'学生'没有属性'gpa'
当我尝试运行以下程序时。
class people(object):
def __init__(self,name,ID):
self.name=name
self.ID=ID
class Student(people):
def __init__(self,name,ID,gpa):
self.name=name
self.ID=ID
self.gpa=gpa
Student.gpa.total.append(self.gpa)
def mean_gpa():
return sum(Student.gpa_total)/float (len(Student.gpa_total))
def info_gpa(self):
mean= self.mean_gpa()
return mean
def __str__(self):
return self.info_gpa()
class Employee(people):
def __init__(self,name,ID,salary):
people._init_(self,name,ID)`
self.name=name
self.ID=ID
self.salary=salary
self.employee=employee
Employee.emp_total.append(self.employee)`
def total_salary():
return sum(Employee.emp_total)`
任何想法我做错了什么?
答案 0 :(得分:0)
您在此处尝试访问Student.gpa
:
Student.gpa.total.append(self.gpa)
我不确定该行应该做什么,但是你试图将它作为静态变量(类的属性,而不是类的实例)来访问它不存在。 __init__()
分配gpa
self
属性Student
,该属性是self
的实例,但这不是您正在访问的内容。此外,__init__()
未在class Student(people):
def __init__(self,name,ID,gpa):
self.name=name
self.ID=ID
self.gpa=gpa
try:
Student.gpa_total.append(self.gpa)
except AttributeError:
Student.gpa_total=[self.gpa]
之外定义。
实际上,我又读了你的代码。看起来你想要这样的东西:
{{1}}
答案 1 :(得分:0)
快速浏览pyflakes向我展示了这两个错误:
第12行:未定义的名称self
。
提示:对于行Student.gpa.total.append(self.gpa)
,您在类之外引用self
,因此它未定义。
第29行:未定义的名称employee
。在Employee
班级self.employee=employee
内,您已将self.employee
设置为名为employee
的不存在的变量