AttributeError:类型对象'Student'没有属性'gpa'

时间:2015-04-04 15:12:26

标签: python

我目前遇到此错误的问题: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)`

任何想法我做错了什么?

2 个答案:

答案 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向我展示了这两个错误:

  1. 第12行:未定义的名称self

    提示:对于行Student.gpa.total.append(self.gpa),您在类之外引用self,因此它未定义。

  2. 第29行:未定义的名称employee 。在Employee班级self.employee=employee内,您已将self.employee设置为名为employee的不存在的变量