访问限制

我们知道,将类的属性设置为__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的值

posted on 2015-05-25 18:45  学渣的成长之路  阅读(142)  评论(0)    收藏  举报

导航