class A(object):
def __init__(self):
self.__a = 1
def get_a(self):
return self.__a
def set_a(self, num):
self.__a = num
class a(A):
def __init__(self):
super(a, self).__init__() #init self.__a in A
print self.get_a()
self.set_a(4)
Z = A()
Za = Z.get_a()
print Za # output 1
Z.set_a(2)
Za = Z.get_a()
print Za # output 2
Y = a() # output 1
Ya = Y.get_a()
print Ya # output 4
print Z.get_a() # output 2
输出:1
2
1
4
2
通过例子可以知道,私有变量不能在类外被直接访问到,比如 Z.__a的形式是错误的,需要通过固定函数接口访问(def get_a():)。
这个函数接口可以被子类继承,继承之后,变量的内存空间是分离的。
私有变量需要加self使之变成类变量。