- 论坛徽章:
- 0
|
刚开始学习python,有很多不懂的地方,请大家指教一下- class B(object):
- def __init__(self,x):
- self.x=x
- def get_XX(self):
- return self.x
- def set_XX(self,value):
- self.x=value
-
- X=property(get_XX,set_XX)
- b1=B(10)
- b2=B(20)
- print(b1.X) #输出的是10
- print(b2.X) #输出的是20
- b1.X=11
- b2.X=21
- print(b1.X) #输出的是11
- print(b2.X) #输出的是21
复制代码 以下是我的理解,不知道对不对,请大家指正:
1:以上的输出结果可以认为b1和b2两个实例都拥有X属性,但是不同的实例的X属性是各自独立互不相干的.
然而接着上面的代码,继续下面的代码- B.X=-100
- print(b1.X) #输出的是-100
- print(b2.X) #输出的是-100
复制代码 2:这次输出的结果表明 类B的X属性与实例的X属性是指向同一个引用,是否可以认为X属性是类的静态属性?
对于第2这次的输出结果我糊涂了,如果第二个观点成立,那么不同的实例的X属性其实就是指向的同一个引用,而这明显和第一个观点产生了矛盾.
不知道大家是如何解释上述两个现象? |
|