这是我得到的回溯:
Traceback(最近一次调用最后一次):
文件" D:\ School \ Programming ll \ Week 4 \ 2.py",第42行,in
主要()
文件" D:\ School \ Programming ll \ Week 4 \ 2.py",第38行,在main中
打印('名称:',emp.name())
AttributeError:' ProductionWorker'对象没有属性' name'
代码:
class Employee(object):
def __init__(self,name,id_number):
self.__name = name
self.__id_number = id_number
def set_name(self, name):
self. __name = name
def set_id_number(self,id_number):
return self.__name
def get_id_number(self):
return self.__id_number
class ProductionWorker(Employee):
def __init__(self, name,id_number,shift_num,pay_rate):
Employee.__init__(self, name, id_number)
self.__shift_num = shift_num
self.__pay_rate = pay_rate
def set_shift_num(self, shift_num):
self.__shift_num= shift_num
def set_pay_rate(self, pay_rate):
self.__pay_rate = pay_rate
#accessor functions for shift_number and pay_rate
def get_shift_num(self):
return self.__shift_num
def get_pay_rate(self):
return self.__pay_rate
def main():
#get the values of employee name, number , shif_number and pay_rate from user.
print ('Enter the following information for the employee')
name=input('Name: ')
id_number=input('Employee number: ')
shift_num=input('Shift number: ')
pay_rate=input ('Pay rate: ')
emp = ProductionWorker(name,id_number,shift_num,pay_rate)
print('Details of employee are shown below: ')
print('Name: ',emp.name())
print('Employee Number: ',emp.get_id_number())
print('Shift Number: ',emp.get_shift_num())
print('Pay Rate: ',emp.get_pay_rate())
main()
请帮助我,我已经敲了好几个小时了。感谢
答案 0 :(得分:1)
ProductionWorker不是Employee的成员。试着改为:
emp = ProductionWorker(name,id_number,shift_num,pay_rate)
您可以在Employee类中添加一个方法:
def name(self):
return self.__name
最好的方法是使用属性:https://docs.python.org/2/library/functions.html#property