从成员函数内部永久更改 class 变量的方法是什么?

What is the way of permanently changing class variables from inside the member function?

print("Hello World")
class testing:

  params = 1
  print(params)

  #@classmethod
  def __init__(self, params):
    self.params = params

  print(params)
b = testing(params = 5)

输出:

Hello World 
1
1

如何使用 __init__ 或任何其他函数获取更改后的参数值,同时将参数保持为 class 变量?

与您分配它的方式相同。 self.params 是一个 class 级别的变量,这意味着您可以使用 self.params 来操作和调用它。在代码行中:

params = 1
print(params)

params 与稍后定义的 self.params 是不同的变量。要打印它,您可以这样写:

print(self.params)

在你定义的 __init__() 函数之后的某处。

这是你想要的吗? __init__方法直接改变class变量。

print("Hello World")


class testing:
    params = 1
    print(params)

    # @classmethod
    def __init__(self, params):
        # self.params = params
        testing.params = params


b = testing(params=5)
print(testing.params)