【问题标题】:What is the way of permanently changing class variables from inside the member function?从成员函数内部永久更改类变量的方法是什么?
【发布时间】:2023-04-05 22:58:01
【问题描述】:
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__ 或任何其他函数获取更改的参数值,同时将参数保留为类变量?

【问题讨论】:

    标签: python class init member-functions


    【解决方案1】:

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

    params = 1
    print(params)
    

    params 是一个不同于 self.params 的变量,稍后定义。要打印它,你会写:

    print(self.params)
    

    在定义它的 __init__() 函数之后的某个位置。

    【讨论】:

      【解决方案2】:

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

      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)
      

      【讨论】:

      • @runaway57 不错。你会选择这个作为答案吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多