1 问题
如果从外部对函数里面重要的属性进行任意修改,有可能程序崩溃只是因为一次不经意的参数修改。那么如何对属性进行访问限制从而增强程序的健壮性呢?
2 方法
要让内部属性不被外部访问,可以把在属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问如std.__name访问报错。
代码清单 1
代码语言:javascript复制class Student():
def __init__(self,height,weight):
self.__height=height
self.__weight=weight
def getheight(self):
return self.__height
def setweight(self):
return self.__weight
xiaoming=Student(180,70)
xiaoming.getheight()
print(xiaoming.getheight())
3 结语
针对如何进行访问限制以及可以对其修改属性的值的问题,提出在名称前面加上两个下划线和内部创建set和get函数的方法,通过以上实验,证明该方法是有效的,当设置set,get时代码会比较繁琐,这个可以通过使用@property装饰器代替set,get方法进行外部访问限制,未来可以继续研究如何节省码量实现访问限制。