【发布时间】:2011-06-10 18:24:53
【问题描述】:
当我有这个类时,变量“值”是类变量。
class Hello:
value = 10
def __init__(self):
print 'init'
我有一个对象“h”,对于 Hello.value 和 h.value,我可以得到相同的值“10”。
h = Hello()
print Hello.value
print h.value
当我运行这个命令时,
h.value = 20
当我运行它们时,我得到值“10”和“20”。
print Hello.value
print h.value
这是为什么?
- Q1:为什么 'print h.value' 打印出 Hello.value 的值,而不是引发错误?
- Q2:h.value = 20 是否引入了类似于 'self.value = 20' 的新变量?
- Q3:有没有办法阻止创建实例变量(或阻止运行代码'h.value = 20')?
【问题讨论】:
标签: python instance-variables class-variables