pin*_*aas 5 python oop static class object
如果我定义一个简单的类
class someClass():
var = 1
x = someClass()
someClass.var = 2
Run Code Online (Sandbox Code Playgroud)
这将使x.var等于 2。这是令人困惑的,因为通常类似于这样的东西:
a = 1
b = a
a = 2
Run Code Online (Sandbox Code Playgroud)
将保持 b 完好无损b==1。那么为什么这与类变量不同呢?区别在哪里?可以调用所有类变量可变吗?在某种程度上,类变量的工作更像是将列表分配给a=[1]并执行a[0]=2.
基本上问题是如何x.var访问 someClass.var 它必须是不同的,然后在 python 中将两个变量设置为相等时使用。怎么了?
var是 的静态类变量someClass。
当您访问 getx.var或y.var时some_other_instance.var,您正在访问相同的变量,而不是实例派生的变量(只要您没有将其作为属性专门分配给实例)。