Class方法不更改类变量的变量
I(0,123...789){
A(0,567...999){.......n=Marc.....}
B(2,655...265){..................}
C(3,993...333){..................}
M(8,635...254){.................;}
}
I(0,987...764){
A(0,567...999){.......n=Marc.....}
B(2,543...265){..................}
C(7,998...933){..................}
M(8,645...284){.................;}
}
我在employee_1上应用了加薪方法后,下一行应打印出增加的薪水。但这仍然显示了50000的旧工资。
答案 0 :(得分:1)
在此代码段中,
raise_amount = 1.04
def __init__(self,first,last,pay):
self.first = first
self.last = last
self.pay = pay
self.email = first+'.'+last+'@company.com'
将self.raise_amount = 1.04
添加到__init__()
并删除raise_amount = 1.04
self
关键字用于引用类实例,如果没有self,则表示它只是局部变量。
在此功能中,
def apply_raise(self):
self.pay = (self.pay * raise_amount)
将变量raise_amount
更改为self.raise_amount
最后在课堂上,将employee_1.apply_raise
更改为employee_1.apply_raise()
要调用方法,请在末尾使用括号()
答案 1 :(得分:0)
在这里您在代码中犯了两个错误: 错误1.在这里
def apply_raise(self):
self.pay = (self.pay * raise_amount)
应为 self.raise_amount
错误2。在函数调用中
print (employee_1.pay)
employee_1.apply_raise
print (employee_1.pay)
在这里,您应该在employee_1.apply_raise的末尾添加'()'以使其成为employee_1.apply_raise()
最初没有调用apply_raise()函数,因此未进行增量。