深入理解python类的实例变量和类变量
本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添加了,所以结果是什么应该显而易见了#
#要解决以上问题,首先得清晰何时类才有了类变量,实例有了实例变量?
#其次要深入理解类变量的作用,实例变量存在的范围和谁相关!
相关文章