类变量和静态方法

时间:2018-10-13 09:40:04

标签: python python-3.x static-methods

我正在观察一种行为,想知道其功能背后的原因。

class Employee:
  raise_amount = 1.04
  def __init__(self, first, last, pay):
    self.first = first
    self.last = last
    self.pay = pay
  @classmethod
  def set_raise_amt(cls, amount):
    cls.raise_amount = amount

 emp_1 = Employee("John","Booth",8000)
 emp_2 = Employee("Satya","Ch",9000)
 emp_1.raise_amount = 4.05
 print (emp_1.raise_amount)
 emp_1.set_raise_amt(3.00)
 print (emp_1.raise_amount)
 print (emp_2.raise_amount)

以上是我的代码。在下面执行时给出输出

4.05

4.05

3.0

[Finished in 0.3s]

我的困惑是,当我使用静态方法将emp_1.raise_amount的值设置为3.00时,为什么它没有反映在print语句中? emp_2.raise_amount的值怎么变成3.00?

0 个答案:

没有答案