我需要显示已存储到列表中的值的结果。该列表存储在类中的一个类中,该类在另一个文件中是安全的。
基本上在另一个文件上返回值,我使用了以下代码:
...
def __init__(self):
self.employee_list = []
def addEmployee(self, name, number, years_worked,salary):
newEmployee = employee.Employee(name,number,years_worked,salary)
self.employee_list.append(newEmployee)
def printEmployee(self):
for eachEmployee in self._employee_list:
print("Name",name)
print("Number",number)
print("Years Worked", years_worked)
print("Salary:", salary)
(这些值也会发送到另一个包含关于员工的类和属性的文件)
然后,在主文件上,为了调用printEmployee函数显示所有数据,我写了这个:
from staff import Staff
mystaff = Staff()
print("Welcome to my Staff Management Program")
print(choices)
elif choice == "D":
for emp in mystaff.employee_list:
print(emp)
显示这个:
<employee.Employee object at 0x02A2F6B0>
我可以帮忙吗? 非常感谢。
答案 0 :(得分:0)
看起来应该使用printEmployee
而不是手动打印:
...
elif choice == "D":
mystaff.printEmployee()
答案 1 :(得分:0)
class Employee:
def __init__(self):
self.employee_list = []
def addEmployee(self, name, number, years_worked,salary):
newEmployee = [name,number,years_worked,salary]
self.employee_list.append(newEmployee)
def printEmployee(self):
for eachEmployee in self._employee_list:
print("Name",name)
print("Number",number)
print("Years Worked", years_worked)
print("Salary:", salary)
emp_obj = Employee()
emp_obj.addEmployee('Monty', '007', '13', '50000')
emp_obj.addEmployee('Max', '008', '3', '30000')
emp_obj.addEmployee('Ana', '009', '7', '70000')
from m1 import Staff
mystaff = Staff()
print("Welcome to my Staff Management Program")
choice = raw_input("Enter your choice:")
if choice == "D":
mystaff.employee_list = emp_obj.employee_list
for emp in mystaff.employee_list:
print("Employee Name: {}, Number: {}, Years worked: {}, Salary: {}").format(emp[0],emp[1],emp[2],emp[3],)
结果:
Welcome to my Staff Management Program
Enter your choice:D
Employee Name: Monty, Number: 007, Years worked: 13, Salary: 50000
Employee Name: Max, Number: 008, Years worked: 3, Salary: 30000
Employee Name: Ana, Number: 009, Years worked: 7, Salary: 70000
您应该尝试通过inheritance
实现此目标。在你的情况下,这将是正确的方法。