class A:
    ## 静态变量
    a = 12
    def __init__(self, a):
        ##成员变量
        self.a = a
print(A.a)  # 12
print(A(0).a)  # 0
静态变量是通过类名.变量名 来访问的,成员变量是通过对象.变量名访问的。
class B:
    ## 静态变量
    b = 12
b1 = B()
b2 = B()
b1.b = 1
print(b1.b)  ## 1
print(b2.b)  ## 12
之所以结果不相同,原因在于给b1对象的b赋值并没有把类变量b变为1,而是b1对象自己生成了一个变量b,并初始化为1。而此时b2.b指向的仍然是类A的变量b,其值仍为12
模仿静态变量的用法
def varfunc():
    var = 0
    print ('var = %d' % var)
    var += 1
if __name__ == '__main__':
    for i in range(3):
        varfunc()
# 类的属性
# 作为类的一个属性吧
class Static:
    StaticVar = 5
    def varfunc(self):
        self.StaticVar += 1
        print (self.StaticVar)
print (Static.StaticVar)
a = Static()
for i in range(3):
    a.varfunc()
结果
 










