(生自dive into python中文p91
类中可以有数据属性,如
class counter:这时表现出来的count类似“静态属性”,每构造一个实例,count值加1
count=0
def __init__(self):
self.__class__.count+=1
我使用下面使用这个函数来打印值
def printme(thestr):那么下面这段程序
print thestr,':',eval(thestr)
printme('counter.count')会输出
c=counter()
printme('c.count')
printme('counter.count')
d=counter()
printme('d.count')
printme('c.count')
printme('counter.count')
counter.count : 0到此为止表现正常
c.count : 1
counter.count : 1
d.count : 2
c.count : 2
counter.count : 2
但如果在程序中手动改变某个实例的属性值比如令c.count=10
那么c.count就会脱离类的控制,下面是个例子
printme('counter.count')输出
c=counter()
printme('c.count')
printme('counter.count')
c.count=10
printme('c.count')
printme('counter.count')
d=counter()
printme('d.count')
printme('c.count')
printme('counter.count')
counter.count : 0这绝对很奇怪啊╮(╯▽╰)╭
c.count : 1
counter.count : 1
c.count : 10
counter.count : 1
d.count : 2
c.count : 10
counter.count : 2
没有评论:
发表评论