(1)封装
封装(Encapsulation)指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
因为使用类的用户无法直接看到类中的数据结构,只能使用类允许公开的数据,避免了外部对内部数据的影响,提高了程序的可维护性。
通过在类的变量或者类的方法之前添加双下划线的形式可以实现封装。
例1:
class Person:
def getname(self):
return self.__name
def setname(self, name):
if len(name) < 4 or len(name) > 10:
raise ValueError('用户名长度必须在4~10之间')
self.__name = name
name = property(getname, setname)
# 创建Person对象
p= Person()
# 对name属性赋值,即调用setname()方法
p.name = 'hll' # 引发 ValueError: 用户名长度必须在4~10之间