AttributeError错误:类型的对象“学生”有没有属性“GPA”
我目前有这个错误的一个问题:AttributeError错误:类型的对象“学生”有没有属性“GPA”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)`
任何想法我做错了什么?
您要访问Student.gpa
这里:
Student.gpa.total.append(self.gpa)
我不知道是什么行是应该做的,但你要访问它作为一个静态变量(一个属性当它不存在时,而不是类的实例)。 __init__()
指定属性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]
这可能“起作用”(即不会导致错误),但我认为这只会进一步混淆OP对实例与类属性的理解。目前尚不清楚*为什么*他们想使用类属性 - imho,他们不这样做。 – jedwards 2015-04-04 15:25:36
通过pyflakes一个快速运行表明我这两个错误:
-
线12:未定义的名称
self
。提示:对于
Student.gpa.total.append(self.gpa)
行,您指的是self
以外的类,所以它是未定义的。 line 29:undefined name
employee
。里面的Employee
类,self.employee=employee
,你设置self.employee
一个叫employee
请从代码中删除所有的反引号不存在的变量,你已经发布 – 2015-04-04 15:13:40
是,'Student'是一类,那里的'gpa'是一个类实例属性。创建一个类型为student的对象,并且可以引用'gpa'属性而不出现任何问题' – karthikr 2015-04-04 15:15:59