Как хранить объекты в списке типа класса
У меня возникли проблемы с хранением объектов класса в списке(типа класса).
В приведенном ниже коде я получаю сведения о сотруднике(имя и ранг) всех.. вместо вызываемого объекта.
Я ищу python альтернативу 'Employee[] emp_obj = new Employee[6]' из java.
Как ожидается, О/Р :
#(when it_dep.describe is called, it should print as below ) # Dept Name : IT # Budget : 3000 # Employees : john(3),krishna(4),pawan(5) #(when sales_dep.describe is called, it should print as below) # Dept Name : Sales # Budget : 3500 # Employees : Rahim(6),Jessy(7),Charan(2)
Что я уже пробовал:
class Employee: def __init__(self,emp_name,emp_grade): self.emp_name = emp_name self.emp_grade = emp_grade def emp_info(self): return self.emp_name + "(" + str(self.emp_grade) + ")" class Department: def __init__(self,dept): self.department = dept __budget = 1000 #------------ In java --------------# #Employee[] emp_obj = new Employee[6] #counter=0 #-----------------------------------# empnames = [] def addEmployee(self, emp_details): if emp_details.emp_grade >= 5: self.__budget += 1000 else: self.__budget += 500 employee_name_grade = emp_details.emp_info() self.empnames.append(employee_name_grade + ",") # self.empgrades.append(emp_details.emp_grade) # self.name_and_grade = self.empnames + self.empgrades #------------------------ Java way of storing emp class objects --------# #emp_obj[counter] = emp_details #counter += 1 #-----------------------------------------------------------------------# def describe(self): temp = "Dept Name : " + self.department + " \n Budget : " + str(self.__budget) + "\n Employees : " #----------------------- for i in self.empnames: temp += str(i) + "" print(temp) emp1 = Employee("john",3) emp2 = Employee("Krishna",4) emp3 = Employee("Rahim",6) emp4 = Employee("Jessy",7) emp5 = Employee("Charan",2) emp6 = Employee("Pawan",5) #----------------------------------- it_dep = Department("IT") sales_dep = Department("Sales") #----------------------------------- it_dep.addEmployee(emp1) it_dep.addEmployee(emp2) it_dep.addEmployee(emp6) sales_dep.addEmployee(emp3) sales_dep.addEmployee(emp4) sales_dep.addEmployee(emp5) it_dep.describe() sales_dep.describe()
Richard MacCutchan
Какие результаты вы видите?
codeXprojectX
Спасибо Ричарду за ответ.
Мой выход:
Название отдела : IT
Бюджет : 3000 долларов
Сотрудники : Джон(3),Кришна(4),Паван(5),Рахим(6),Джесси(7),Чаран(2),
Название Отдела : Продажи
Бюджет : 3500 долларов
Сотрудники : Джон(3),Кришна(4),Паван(5),Рахим(6),Джесси(7),Чаран(2),
В приведенном выше выводе я могу видеть все детали сотрудника..вместо вызываемого объекта(как в ожидаемом выводе)