2016-07-28 118 views
-2

我想在Python中实例化一个简单的类。实例化一个类 - Python

class Student: 
    def __init__(self, name, age, major, gpa): 
     name = self.name 
     age = self.age 
     major = self.major 
     gpa = self.gpa 


def main(): 
    student_1 = Student('John', 31, 'History', 3.4) 
    student_2 = Student('George', 31, 'English', 3.5) 
    print student_1.name, student_2.name 

我得到的错误是:

AttributeError: Student instance has no attribute 'name'

+1

self.name =名称等等,你已经倒变量分配 – Alex

+3

您的转让说明已转过来。它应该是'self.name = name'。 –

+0

* facepalm * ...谢谢大家 – Craig

回答

3

变化:

name = self.name 
    age = self.age 
    major = self.major 
    gpa = self.gpa 

到:

self.name = name 
    self.age = age 
    self.major = major 
    self.gpa = gpa 
1

你得到这个错误,因为你之前访问属性定义它们。那是因为你有你的作业错误的方式 - 你尝试分配(未定义)属性的参数,而不是倒过来:

def __init__(self, name, age, major, gpa): 
    self.name = name 
    self.age = age 
    self.major = major 
    self.gpa = gpa