类方法不更改类变量的值

时间:2019-06-16 16:35:32

标签: python python-3.x oop

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的旧工资。

2 个答案:

答案 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()函数,因此未进行增量。