python静态变量_Python的学习(二十一)----Python的静态变量

前段时间在论坛里面有人提问说,

class foo():

member1

member2

...

self.member1

foo.member2

其中的两个成员member1, member2有什么区别。。。这才知道python中也有自己的全局静态变量。

实例的属性是实例的,如上class中的member1,对它进行+/-操作时,只会对一个相应对象实例产生影响,(其类和该类的其它实例的不受影响)。

如果类的属性是 mutable 对象的话,对此对象*本身*的修改会反映到其他所有实例。python 中定义的静态成员变量,就是类的变量, 只能通过类.变量名的形式获取

类变量是该类的所有对象共享的变量成员,

class A:

a1 = 0

def __init__(self, a2):

self.a2 = a2

def setData(self, a3):

self.a3 = a3

def show(self):

print 'A1:%s,a1:%s,a2:%s,a3:%s' %(A.a1, self.a1, self.a2, self.a3)

if __name__ == '__main__':

obj1 = A(1)

obj2 = A(2)

obj3 = A(3)

obj1.setData(1)

obj2.setData(2)

obj3.setData(3)

obj1.a1 = 1

obj2.a1 = 2

obj3.a1 = 3

A.a1 = 1

A.a2 = 2

A.a3 = 3

obj1.show()

obj2.show()

obj3.show()

print 'A1:%s,A2:%s,A3:%s' %(A.a1, A.a2, A.a3)

输出结果:A1:1,a1:1,a2:1,a3:1

A1:1,a1:2,a2:2,a3:2

A1:1,a1:3,a2:3,a3:3

A1:1,A2:2,A3:3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值