import employee
def main():
print('This program will create employee objects and store their information')
print()
ledger = []
numOfEmployees = int(input("Enter the number of employee's to enter: "))
for count in range(numOfEmployees):
name = input("Enter employee's name: ")
id_number = input("Enter employee's ID number: ")
department = input("Enter employee's department: ")
job_title = input("Enter employee's job title: ")
count = employee.Employee(name, id_number, department, job_title)
ledger.append(count)
print("This is the list of employee's:")
for person in ledger:
print(person)
main()
以下是我的员工模块。我知道在模块内部制作分类帐会更有意义,但在我尝试实现之前,似乎我应该弄清楚如何更容易地做到这一点。
class Employee:
def __init__(self, name, id_number, department, job_title):
self.__name = name
self.__id_number = id_number
self.__department = department
self.__job_title = job_title
def set_name(self, name):
self.__name = name
def set_id_number(self, id_number):
self.__id_number = id_number
def set_department(self, department):
self.__department = department
def set_job_title(self, job_title):
self.__job_title = job_title
def get_name(self):
return self.__name
def get_id_number(self):
return self.__id_number
def get_department(self):
return self.__department
def get_job_title(self):
return self.__job_title
以下是输出。
This program will create employee objects and store their information
Enter the number of employee's to enter: 1
Enter employee's name: adf
Enter employee's ID number: afd
Enter employee's department: asdf
Enter employee's job title: asdf
This is the list of employee's:
<employee.Employee object at 0x000001A96A92FF98>
我希望它实际打印出值而不仅仅是它在内存中的位置......我该怎么做?
答案 0 :(得分:2)
要打印对象,您需要提供其字符串表示形式的定义。然后,您在__str__()
覆盖:
例如,你的可能是:
class Employee
... # other functions
def __str__(self):
return "{}, {}, {}".format(self.__name, self.__id_number, self.__department)
显然,您可以根据需要决定格式化。
此外,您应该查找@property
装饰者,这样您就不需要自己制作吸尘器和装置工具,但这不是您的问题。
答案 1 :(得分:0)
为您的对象定义__str__
方法。当在期望字符串的上下文中使用对象时,Python会自动调用此方法(通常为print
)。
E.g:
class Employee:
def __str__(self):
return self.__name