2016-11-24 4 views
0

Здравствуйте, я новичок в Stack Overflow, мы надеемся, вы можете получить мой вопрос:Jython: ArrayList объекта, который находится в ArrayList другого объекта не создается новый

Я работаю первый раз с Jython. Моя цель - использовать его для скрипта ibm wsadmin, который требует либо jython, либо cython, но только jython является для меня вариантом. Я попытался создать базовый код, который будет стандартной структурой, которую мои классы будут иметь в конце.

Отношения 1-N-N, чтобы получить это, я использую Arraylist для каждого класса, у которого есть N атрибутов.

Когда я пытаюсь использовать Arraylist, он всегда записывает в тот же список и не использует новый созданный. Надеюсь, мой код объясняет проблему. Я был бы рад, если бы кто-то сказал мне свою логическую проблему.

class Student: 
     name = none 
     age = None 

class Group: 
    name = None 
    studentList = ArrayList() 

    def addStudent(self,stName,stAge): 
    var1 = Student() 
    var1.name = stName 
    var1.age = stAge 
    self.studentList.add(var1) 

class School: 
    name = None 
    groupList = ArrayList() 

    def createGroups(self): 
     group1 = Group() 
     group1.addStundent('Tim',16) 
     group2 = Group() 
     group2.addStudent('Lisa',15) 
     group2.addStudent('Marco',16) 

     for z in range(len(group2.studentList)): 
     studentResult = group2.studentList[z].name 
     Print 'Group2 - StudentNumber:' + str(z)+ '- Name:' + studentResult 

SystemOut =

Group2 - StudentNumber 0- Name: Tim 
    Group2 - StudentNumber 1- Name: Lisa 
    Group2 - StudentNumber 2- Name: Marco 

ответ

0

Это не так, как вы инициализации полей экземпляра. В вашем коде все эти поля объявляются полями классов. Вы должны создать конструктор, используя __init__ волшебное слово, как это:

class Group: 
    def __init__(self): 
    self.name = None 
    self.studentList = ArrayList() 

    def addStudent(self,stName,stAge): 
    var1 = Student() 
    var1.name = stName 
    var1.age = stAge 
    self.studentList.add(var1) 
+0

Спасибо за ваш быстрый ответ, я буду тестировать его завтра и дать вам обратную связь;) –

 Смежные вопросы

  • Нет связанных вопросов^_^