双下划线比单下划线多了 Name Mangling,这是个 Python 2.0 时引入的新特性。你可以直接理解成编译器会把属性名替换成别的。 但如果你知道编译器是怎样替换的(一般来说是 `_类__属性`,具体到题目中的例子就是 `_A__B`),你照样可以在外部访问到它。换而言之,它依然还是“公有”的,只是被编译器改了名字。 因此我们说 Python 并没有真正的属性可见性修饰符,下划线仅仅是约定俗成。
阅读量:1
点赞量:0