访问限制
我们知道,将类的属性设置为__xxx时,不能被外部访问,但setattr(p,'__xxx',xxx)可以访问p.__xxx,原因如下:
__score不能被外部访问是因为Python解释器自动把class内部的__score变成了_Person__score
也就是说,class内部的__score被实际替换成_Person__score
而setattr(p, '__score', 88)是给p加了一个__score属性,这个__score和class内部的__score不是同一个
也就是说我们仍然可以通过p._Person__score来获取__score的值
浙公网安备 33010602011771号