标签:student obj 通过 面向对象编程 编程 nbsp python解释器 怎么 name
1.访问限制
如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__
,在Python中,实例的变量名如果以__
开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问,所以,我们把Student类改一改:
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))
无法从外部访问实例变量.__name
和实例变量.__score
了。不能直接访问__name
是因为Python解释器对外把__name
变量改成了_Student__name
,所以,仍然可以通过_Student__name
来访问__name
变量,但是强烈建议你不要这么干,因为不同版本的Python解释器可能会把__name
改成不同的变量名。
但是如果外部代码要获取name和score怎么办?可以给Student类增加get_name
和get_score
这样的方法:
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
标签:student obj 通过 面向对象编程 编程 nbsp python解释器 怎么 name
原文地址:https://www.cnblogs.com/konglingxi/p/9591311.html