【发布时间】:2017-05-10 11:35:04
【问题描述】:
我已经读过要创建一个静态变量,我们可以在类定义中而不是在方法中声明它们。但从 Java 世界来看,它对我来说似乎不是那么“静态”,因为从一个实例更改变量的值会创建自己的变量,不同于类变量。 我正在寻找一种方法来确保变量的值在不同的实例中保持一致。 StackOverflow 上的答案之一建议使用以下代码,这对我来说似乎效果不佳。
class Test(object):
_i = 3
@property
def i(self):
return self._i
@i.setter
def i(self,val):
self._i = val
x1 = Test()
x2 = Test()
x1.i = 50
assert x2.i == x1.i # The example suggested no error here but it doesn't work for me
如果可以做到这一点,你能举例说明吗?
【问题讨论】:
-
您似乎在浪费时间,因为没有常量变量,并且 python 中有动态属性,您是否考虑过不这样做(覆盖实例中的变量)?跨度>
标签: python class static class-variables