更改 Python 中的静态 class 变量
Changing static class variables in Python
如何更改 class 的静态变量?我希望通过某种输入来改变它。
class MyClass:
var1 = 1
var2 = 4
def __init__(self, var3, var4):
self.var3 = var3
self.var4 = var4
我想要改变的是var1 og var2,或者想知道如何改变。
如果要更改 class 变量,可以将它们分配给 __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)
这取决于您何时需要重新绑定 class 属性。您也可以稍后在创建对象时这样做:
mc = MyClass(1, 2)
mc.var1 = 20
mc.var2 = 40
在 class 正文中创建或更改的属性与通过分配给属性在外部创建的属性没有区别。
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 500
# since its a static var you can always access it through class name
# Whatever.b
如何更改 class 的静态变量?我希望通过某种输入来改变它。
class MyClass:
var1 = 1
var2 = 4
def __init__(self, var3, var4):
self.var3 = var3
self.var4 = var4
我想要改变的是var1 og var2,或者想知道如何改变。
如果要更改 class 变量,可以将它们分配给 __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)
这取决于您何时需要重新绑定 class 属性。您也可以稍后在创建对象时这样做:
mc = MyClass(1, 2)
mc.var1 = 20
mc.var2 = 40
在 class 正文中创建或更改的属性与通过分配给属性在外部创建的属性没有区别。
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 500
# since its a static var you can always access it through class name
# Whatever.b