如果我定义一个简单的类
class someClass():
var = 1
x = someClass()
someClass.var = 2
这将使x.var
等于2.这是令人困惑的,因为通常情况下
类似于这样的东西:
a = 1
b = a
a = 2
将保留b完整为b==1
。那么为什么这与类变量不一样呢?区别在哪里?可以调用所有类变量可变吗?
在某种程度上,类变量更像是将列表分配给a=[1]
并执行a[0]=2
。
基本上问题是x.var
如何访问someClass.var它必须是不同的东西然后在python中设置两个变量相等时使用。发生了什么事?
答案 0 :(得分:1)
var
是someClass
的静态类变量。
当您伸出手来获取x.var
,y.var
或some_other_instance.var
时,您正在访问相同的变量,而不是实例派生的变量(只要您没有专门指定它)作为财产的实例)。