class AA(): def __init__(self): self.__a = 1 a = AA() a.__b = 2 print(dir(a))
输出:
['_AA__a', '__b', '__doc__', '__init__', '__module__']
python并没有真正的私有变量,它只是把定义中的以“__”开头的变量名做了特殊的处理,在变量名前加了"_类名",所以子类不能访问到该变量
但是手动设置的变量是不会做特殊处理的,也就是说python只会在“编译”阶段对定义了的“私有变量”做特殊处理
浙公网安备 33010602011771号