为什么会出现属性错误?没有找到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()
答案 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): ...
。)