Python中的类变量问题

Jai*_*Jai 0 python class python-3.x

我是python的新手.我正在做以下代码,我遇到了一个不受欢迎的结果.请查看我的代码,让我知道我做错了什么:

class TestClass(object):
  @classmethod
  def __init__(self, val):
    self.val = val

  @classmethod
  def value(self):
    return self.val

def Test():
  a = TestClass(9)
  b = TestClass(8)
  c = TestClass(7)
  print(a.value(), b.value(), c.value())
Run Code Online (Sandbox Code Playgroud)

期望输出为

9 8 7
Run Code Online (Sandbox Code Playgroud)

但得到输出

7 7 7
Run Code Online (Sandbox Code Playgroud)

我的代码有什么问题.

Jim*_*ard 7

设置__init__classmethod实际传递类的方法__init__,self.val实际上设置为类变量,而不是实例变量.

您执行的最终"初始化"将覆盖您设置的所有其他值.

删除@classmethods修复了该问题.