我知道有一些关于Python属性错误的帖子,但我找不到任何有助于解决我的问题或如何解决它的问题。这是我的代码:
class Employee:
def __init__(self, name, ID_number, dept, job_title):
self.__name = name
self.__ID_number = ID_number
self.__dept = dept
self.__job_title_number = job_title
#set methods
def set_name(self,name):
self.__name = name
def set_ID_number(self,ID_number):
self.__ID_number = ID_number
def set_dept(self,dept):
self.__dept = dept
def set_job_title(self,job_title):
self.__job_title = job_title
#get methods
def get_name(self):
return self.__name
def get_ID_number(self):
return self.__ID_number
def get_dept(self):
return self.__dept
def get_job_title(self):
return self.__job_title
def main():
emp1 = Employee("Susan Myers", 47899, "Accounting", "Vice President")
emp2 = Employee("Mark Jones", 39119, "IT", "Programmer")
emp3 = Employee("Joy Rogers", 81774, "Manufacturing", "Engineer")
print("Information for employee 1:")
print("Name:",emp1.get_name())
print("ID:",emp1.get_ID_number())
print("Department:",emp1.get_dept())
print("Job Title:",emp1.get_job_title())
main()
我得到的回溯是:追溯(最近一次呼叫最后一次):
文件" C:/用户....",第48行,in 主()
文件" C:/ Users ....",第41行,在main中 打印("职位名称:",emp1.get_job_title())
文件" C:/ Users ....",第29行,在get_job_title中 返回自我.__ job_title AttributeError:'员工'对象没有属性' _Employee__job_title'
答案 0 :(得分:1)
您尚未在构造函数
中声明该成员必须改变
self.__job_title_number = job_title
到
self.__job_title = job_title
答案 1 :(得分:0)
在__init__
中,您使用self.__job_title_number = job_title
,但随后在get_job_title
中使用self.__job_title
,此时此时尚未设置。{/ p>
您需要在所有用途中使变量名称保持一致。
答案 2 :(得分:0)
在班级的初级函数中,您的职位名称为self.__job_title_number
,但在getter函数中,您返回self.__job_title
。你必须改变其中一个,所以它们是相同的。