2016-09-28 89 views
2

這是我的類:名單功能所附不起作用

from Student import Student 
class Class: 
    stulist=[] 
    def __init__ (self, classname, numstudents): 
     self.classname=classname 
     self.numstudents=numstudents 
    def addStudent(self, stuNum, stuName, stuGrades): 
     Class.stulist.append(Student(stuName, stuGrades)) 
    def getPlace(self): 
     print (Class.stulist[0].printLn()) #printLn is function in Student 
     print (Class.stulist[1].printLn()) 
     print (Class.stulist[2].printLn()) 

這是我的跑步者:

from Class import Class 

class ClassRunner(): 
     def main(): 
      test=Class("Comp sci 1", 3) 
      test.addStudent(0, "Jimmy","4 - 100 90 80 60") 
      test.addStudent(1, "Sandy","4 - 100 100 80 70") 
      test.addStudent(2,"Fred","4 - 50 50 70 68") 
      test.getPlace() 
     main() 

我的輸出顯示:

佛瑞德= 50 50 70 68

Fred = 50 50 70 68

佛瑞德= 50 50 70 68

但是我希望它顯示:

麥= 100 90 80 60

桑迪= 100 100 80 70

佛瑞德= 50 50 70 68

我做錯了什麼?謝謝!

回答

0

在你的Class班,self.stulist而不是Class.stulist

您正在修改類本身,而不是實例變量。

class Class: 
    stulist=[] 
    def __init__ (self, classname, numstudents): 
     self.classname=classname 
     self.numstudents=numstudents 
    def addStudent(self, stuNum, stuName, stuGrades): 
     self.stulist.append(Student(stuName, stuGrades)) 
    def getPlace(self): 
     print (self.stulist[0].printLn()) #printLn is function in Student 
     print (self.stulist[1].printLn()) 
     print (self.stulist[2].printLn()) 

引用Class要修改實際Class對象本身。

+0

非常感謝! – Coder

+0

@Coder如果它工作,您可以打勾選項,以便我知道這個答案可以解決您的問題。 – enderland