访问限制小结
廖雪峰老师的python教程
在之前定义class的过程中,通过外部可以修改实例变量,但如果我们不想使实例变量被修改该怎么办?
答案是,在属性的名称前加两个下划线 __。变成一个私有变量。
如果此时还想从外部获得和改变变量,可以再class内部定义函数,来完成此作用。
class Student(object):
def __init__(self, name, score):
self.__name = name
self.__score = score
def print_score(self):
print('%s: %s' % (self.__name, self.__score))
def get_name(self):
return self.__name
def get_score(self):
return self.__score
def set_name(self, name):
self.__name = name
def set_score(self, score):
self.__score = score
PS:不可以从外部访问__name的原因,是python解释器对外把其变为了__Student__name变量,但不要这样做就好了