python源码学习(十二)——类中私有的变量和方法

By | 2014/08/17

python中私有变量和方法的声明方式如下:
_xxx 不能用’from module import *’导入
__xxx__ 系统定义名字
__xxx 类中的私有变量名,
因为下划线在解释其中有特殊的含义,所以在声明变量的时候尽量不要使用下划线,
python中一个变量如果声明为私有的,如下:

class TestClassA(object):
    __a = 10
    def get_a(self):
        return self.__a

class TestClassB(object):
    b = 10
    def get_b(self):
        return b

以上两个类中,如果我们使用如下方法:

a = TestClassA()
b = a.get_a()

此时,b和__a并不是占用同一块内存,而如果使用如下代码:

b = a.__a

程序则会报错,
b是开辟了一块内存,内存的结构和__a完全相同,你修改b的值,但不会修改__a的值。
相反,如果我们使用如下代码:

c = TestClassB()
d = c.b
e = c.get_b()

这里,d和e都是和TestClassB中的b变量占用同一块内存,但不完全相等,实际上如同所示:
2014-08-17 19:34:04的屏幕截图
今天先写到这吧,完全自创,上一篇源码博客地址请点击此处

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.