在Python中更改静态类变量

时间:2018-01-13 14:41:19

标签: python class static-variables class-variables

如何更改类的静态变量?我希望通过某种输入来改变它。

class MyClass: 

    var1 = 1
    var2 = 4

    def __init__(self, var3, var4):
        self.var3 = var3
        self.var4 = var4

var1 og var2我想要变换,或者想要知道如何改变。

3 个答案:

答案 0 :(得分:2)

class whatever():
    b = 5
    def __init__(self):        
        whatever.b = 9999

boo = whatever()
print(boo.b) // prints 9999

boo.b = 500
print(boo.b) // prints 500

whatever.b = 400
print(boo.b) // prints 400

// since its a static var you can always access it through class name
// whatever.b

答案 1 :(得分:0)

如果要更改类变量,可以将它们分配给__init__范围内的变量:

class MyClass: 
  var1 = 1
  var2 = 4
  def __init__(self, var3, var4):
    self.var1 = var3
    self.var2 = var4

c = MyClass(100, 200)
>>>c.var1, c.var2

输出:

(100, 200)

答案 2 :(得分:0)

这取决于您何时需要重新绑定类属性。您也可以在以后创建对象时执行此操作:

mc = MyClass(1, 2)
mc.var1 = 20
mc.var2 = 40

通过分配属性,在类体内创建或更改的属性与在外部创建的属性之间没有区别。