Python,属性错误

时间:2014-11-29 11:06:05

标签: python

这是我得到的回溯:
    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()

请帮助我,我已经敲了好几个小时了。感谢

1 个答案:

答案 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