博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

python类私有成员

Posted on 2017-11-21 22:05  马顿  阅读(144)  评论(0)    收藏  举报
class AA():
    def __init__(self):
        self.__a = 1
a = AA()
a.__b = 2
print(dir(a))

输出:
['_AA__a', '__b', '__doc__', '__init__', '__module__']

python并没有真正的私有变量,它只是把定义中的以“__”开头的变量名做了特殊的处理,在变量名前加了"_类名",所以子类不能访问到该变量

但是手动设置的变量是不会做特殊处理的,也就是说python只会在“编译”阶段对定义了的“私有变量”做特殊处理