2016-07-28 119 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