【发布时间】:2017-11-17 17:11:01
【问题描述】:
如果我定义一个简单的类
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 中设置两个变量时使用。发生了什么?
【问题讨论】:
-
现在设置
x.var = 3,看看someClass.var会发生什么 -
我知道,但这不是重点
-
不,这是的重点。本质上,当你这样做时,
SomeClass.var和someInstance.var不一定是同一件事。 -
这根本不是关于 someClass.var = 2 更改 x.var 以及与 python 中变量的正常功能相比 x.var 如何绑定到类变量的事实
标签: python class oop object static