我在python中得到一个AttributeError,我无法弄清楚为什么。我是Python的新手,所以对我来说这个标准并不是很高。我一直收到错误消息:
打印( '姓名:',emp.get_emp_name())
AttributeError:'ProductionWorker'对象没有属性 'get_emp_name'
这是我的代码:
class Employee:
def __init__(self, name, number):
self.__name = name
self.__number = number
#set methods
def set_name(self,name):
self.__name = name
def set_number(self,number):
self.__number = number
#get methods
def get_name(self):
return self.__name
def get_number(self):
return self.__number
class ProductionWorker(Employee):
def __init__(self, name, number, shift_num, pay_rate):
Employee.__init__(self, name, number)
self.__shift_num = shift_num
self.__pay_rate = pay_rate
#set methods
def set_shift_num(self,shift_num):
self.__shift_num = shift_num
def set_pay_rate(self,pay_rate):
self.__pay_rate = pay_rate
#get methods
def get_shift_num(self):
return self.__shift_num
def get_pay_rate(self):
return self.__pay_rate
def main():
print('Please enter the following details.')
name = input('Name:')
number = input('Employee Number:')
sh = input('Shift Number:')
pay_rate = input('Pay Rate:')
emp = ProductionWorker(name, number, sh, pay_rate)
print('Here is the employee information:')
print('Name:',emp.get_emp_name())
print('Employee Number:',emp.get_emp_number())
print('Shift Number:',emp.get_shift_num())
print('Pay Rate:',emp.get_pay_rate())
main()
答案 0 :(得分:2)
对象只能调用自己的类定义中定义的方法或其父类中定义的方法。
在这里,您调用的方法get_emp_name()
既未在类ProductionWorker
中定义,也未在其父类Employee
中定义。
您可以将其更改为:
print('Name:',emp.get_name())
答案 1 :(得分:1)
改变这两个:
print('Name:',emp.get_emp_name())
print('Employee Number:',emp.get_emp_number())
为:
print('Name:',emp.get_name())
print('Employee Number:',emp.get_number())