Python错误消息:AttributeError

时间:2017-04-19 05:34:19

标签: python function

我在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()

2 个答案:

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