Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python AttributeError:type object';学生';没有属性';gpa';_Python - Fatal编程技术网

Python AttributeError:type object';学生';没有属性';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

我当前遇到此错误的问题: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
        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]
快速浏览会显示以下两个错误:

  • 第12行:未定义的名称
    self

    提示:在
    Student.gpa.total.append(self.gpa)
    行中,您指的是类外的
    self
    ,因此它是未定义的

  • 第29行:未定义的姓名
    员工
    。在
    Employee
    类中,
    self.Employee=Employee
    self.Employee
    设置为一个不存在的变量,名为
    Employee


  • 请删除您发布的代码中的所有反勾号是,
    Student
    是一个类,其中as
    gpa
    是一个类实例属性。创建一个student类型的对象,您可以引用
    gpa
    属性而不出现任何问题`这可能“起作用”(即不会导致错误),但我认为这只会进一步混淆OP对实例和类属性的理解。现在还不清楚他们为什么要使用类属性——嗯,他们没有。