【发布时间】:2011-03-24 06:44:23
【问题描述】:
从潜入 Python:
类属性都可以通过直接引用 类并通过该类的任何实例。
类属性可以用作类级别的常量,但它们是 不是真正的常数。您也可以更改它们。
所以我在 IDLE 中输入:
IDLE 2.6.5
>>> class c:
counter=0
>>> c
<class __main__.c at 0xb64cb1dc>
>>> v=c()
>>> v.__class__
<class __main__.c at 0xb64cb1dc>
>>> v.counter += 1
>>> v.counter
1
>>> c.counter
0
>>>
那么我做错了什么?为什么类变量不能通过直接引用类和类的任何实例来保持其值。
【问题讨论】:
-
由于 c.counter 还是 0,你显然没有改变它的值。但是,您确实更改了 v 实例的 counter 属性的值。
-
我认为您正在寻找“静态类变量”。可能是stackoverflow.com/questions/68645/… 的副本