python类变量和实例变量的区别

类变量:是为类服务的,类所有的实例都共享使用,在一个地方被改变,所有调用的地方变量值都改变。定义类时的写法为类名.变量名
实例变量:是在实例中生效的,每个实例变量的值都根据实例本身需求进行修改,不会影响其他实例,定义类时的写法为self.变量名
(1)定义一个类
class C:
    a = 0   #类变量
    b = 0   #类变量
    def __init__(self, flag):
        self.a = flag   #实例变量
        C.a = 1         #类变量赋值
        C.b = 1         #类变量赋值
(2)类实例化
test1 = C(5)
test2 = C(6)
(3)查看结果
>>> test1.a
5
>>> test2.a
6
#实例变量根据实例的不同而有不同的值
>>> C.a
1
>>> C.b
1
>>> test1.b
1
>>> test2.b
1
#类变量在所有实例中都是一样的
>>> C.b = 10    #改变类变量值
>>> test1.b
10
>>> test2.b
10
#可以看到所有实例中的类变量都改变了
posted @ 2017-08-17 18:26  老和尚不念经  阅读(484)  评论(0编辑  收藏  举报