AttributeError:'员工'对象没有属性' WorkingHours'

时间:2018-06-13 10:41:09

标签: python python-3.x python-2.7 constructor

为什么会出现属性错误?没有找到WorkingHours attribue?

class Employee:
    def numberofWorkingHours(self):
        self.WorkingHours = 45

    def printnumberofWorkingHours(self):
        print(self.WorkingHours)

class Trainee:
 def numberofWorkingHours(self):
     self.WorkingHours = 60

emp = Employee()
emp.printnumberofWorkingHours()

2 个答案:

答案 0 :(得分:2)

class Employee:

    def __init__(self):
        self.WorkingHours = 45

    def printnumberofWorkingHours(self):
        print(self.WorkingHours)

class Trainee:
    def numberofWorkingHours(self):
        self.WorkingHours = 60

emp = Employee()
emp.printnumberofWorkingHours()

将numberofWorkingHours方法替换为__init__

答案 1 :(得分:0)

您设置self.WorkingHours的唯一位置是方法numberofWorkingHours的正文中。

由于在您的演示中您从不调用该方法,因此未设置属性WorkingHours

您可以事先致电numberofWorkingHours或重新设计课程。更好的方法是在self.WorkingHours = 45方法中设置__init__。 (您也可以考虑不对该值进行硬编码,而是将其作为可选参数传递给__init__,例如def __init__(self, WorkingHours=45): ...。)