关于访问限制
class Person(object):
def __init__(self, score):
self.__score = score
def get_score(self):
return self.__score
p = Person(100)
setattr(p, '__score', 88)
print p.get_score
print p.__score
print p._Person__score
这里面第一个print p.get_score返回的是<bound method Person.get_score of <__main__.Person object at 0x0000000001F81E48>>,这是返回get_score()方法的地址吗?
__score不能被外部访问是因为Python解释器自动把class内部的__score变成了_Person__score,但是p._Person__score却能被外部访问,print结果也是100,这是为什么呢?