Python AttributeError:type object';学生';没有属性';gpa';
我当前遇到此错误的问题:AttributeError:type对象“Student”没有属性“gpa” 当我尝试运行以下程序时Python AttributeError:type object';学生';没有属性';gpa';,python,Python,我当前遇到此错误的问题:AttributeError:type对象“Student”没有属性“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
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)`
你知道我做错了什么吗 您正在尝试访问
Student.gpa
此处:
Student.gpa.total.append(self.gpa)
我不确定那一行应该做什么,但当它不存在时,您试图将其作为静态变量(类的属性,而不是类的实例)访问<代码>\uuuu init\uuuu()指定self
的gpa
属性,该属性是Student
的一个实例,但这不是您正在访问的。此外,self
未在\uuuuu init\uuuuuu()
之外定义
事实上,我又读了一遍你的代码。看起来你想要这样的东西:
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]
快速浏览会显示以下两个错误:
self
提示:在Student.gpa.total.append(self.gpa)
行中,您指的是类外的self
,因此它是未定义的员工
。在Employee
类中,self.Employee=Employee
将self.Employee
设置为一个不存在的变量,名为Employee
请删除您发布的代码中的所有反勾号是,
Student
是一个类,其中asgpa
是一个类实例属性。创建一个student类型的对象,您可以引用gpa
属性而不出现任何问题`这可能“起作用”(即不会导致错误),但我认为这只会进一步混淆OP对实例和类属性的理解。现在还不清楚他们为什么要使用类属性——嗯,他们没有。