本python是python 3.5版本~!!!


class aa:
      w = 10
      def __init__(self):
           self.x = 11
           self.y = 12
      def add(self):
           return self.x + self.y

a = aa()     #将a投入aa这个类中,进行实例化#
print a.add()   #这个结果显然易见#
#下边两条指令各起何作用?结果是输出两个 20 么?还是两个13?还是?
aa.w = 20   

#注意!aa.w不是一个叫aa的实例里面的w属性,而是类aa,他里面的w属性,这句话其实等于

class aa:

        w=20                     #

a.w = 13    #正常情况下,a.w的应该是10,但是这里手工赋值为13#
print aa.w, a.w      #所以这个答案也显而易见啦#
#程序继续增加如下,怎样理解这t和q呢?他们是___变量
a.t = 14                 #实例a里面的属性t的值#
a.q = 15                #原理同上#
print a.t, a.q
#程序继续增加如下,怎样理解这m和n呢?他们是___变量
aa.m = 30           #同aa.w=20那句话一样,只不过用这种方式增加属性,而不用从头再把那个类写一遍,

这句话其实等于

class aa:

        m=20                     #

aa.n = 40
print aa.m, aa.n          


#好了再来个提升吧
#程序继续增加,下列三个print语句都能正确执行么?为何?
b = aa()                   #b属于这个aa类#
print b.x,b.y             #这个很直白#
print b.t,b.q
print b.m,b.n           #m和n在上面的程序里已经被aa添加了,所以结果是什么应该显而易见了#

#要解决以上问题,首先得清晰何时类才有了类变量,实例有了实例变量?
#其次要深入理解类变量的作用,实例变量存在的范围和谁相关!